초급JAVA 10 - 과제

voilà!·2021년 11월 7일
0

초급JAVA

목록 보기
21/24

다마고치 게임만들기

Game 클래스

package f_gameStudy;

public class Game {
	public String animal;
	public String name;
	public int age;
	public int power;
	public int energy;
	int count;
	
	public Game()
	{
		System.out.println("♡♡♡♡♡♡♡♡♡♡♡♡♡♡ GAME START♡♡♡♡♡♡♡♡♡♡♡♡♡");
	}
	
	public void showInfo(){
		System.out.println("♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡ 내 정보 ♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡");
		System.out.println("이름 : "+ name);
		System.out.println("나이 : "+ age);
		System.out.println("파워 : " + power);
		System.out.println("에너지 : " + energy);
		System.out.println("♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡");
			}

	public void eat() // 밥먹기
	{
		energy += 15;
		count++;
	}
	
	public void sleep() // 자기
	{
		energy += 5;
		count++;
	}
	
	public void exercise() // 운동
	{
		energy -= 10;
		power += 10;
		count++;
	}
	
	public void aging() // 나이 먹기
	{
		if(count > 3) 
		{
			age++;
			count = 0;
			System.out.println(this.name +"의 나이가 +1 되었습니다!");
		}
	}
 
	public void attack() // 공격하기
	{
		energy -= 15;
		power += 20;
	}
	
	public void print() // 현재 상태출력 하기
	{
		System.out.println("▷ "+this.name+"의 현재 나이  : " +age);
		System.out.println("▷ "+this.name+"의 현재 에너지 : " +energy);
		System.out.println("▷ "+this.name+"의 현재 파워  : " +power);

	}
}

Cat 클래스

package f_gameStudy;

public class Cat extends Game {
	public int count;
	public Cat(String name)
	{
		this.name = name;
		animal = "고양이"; 
		age = 0; 
		power = 80;
		energy = 100;
		count = 0; 
		System.out.println(this.name +"가 만들어졌습니다!");
	}
	@Override
	public void eat() // 밥먹기
	{
		energy += 10;
		count++;
		System.out.println(this.name +"의 에너지가 +10 되었습니다!");
	}
	@Override
	public void sleep() // 자기
	{
		energy += 5;
		count++;
		System.out.println(this.name +"의 에너지가 +5 되었습니다!");

	}
	@Override
	public void exercise() // 운동
	{
		energy -= 10;
		power += 10;
		count++;
		System.out.println(this.name +"의 에너지가 -10 되었습니다!");
		System.out.println(this.name +"의 파워가 +10 되었습니다!");

	}
	@Override
	public void aging() // 나이 먹기
	{
		if(count > 3) 
		{
			age++;
			count = 0;
			System.out.println(this.name +"의 나이가 +1 되었습니다!");
		}
	}
	@Override
	public void attack() // 공격하기
	{
		energy -= 15;
		power += 20;
		System.out.println(this.name +"의 에너지가 -15 되었습니다!");
		System.out.println(this.name +"의 파워가 +20 되었습니다!");
	}
	
	@Override
	public void print() // 현재 상태출력 하기
	{
		System.out.println("▷ "+this.name+"의 현재 나이  : " +age);
		System.out.println("▷ "+this.name+"의 현재 에너지 : " +energy);
		System.out.println("▷ "+this.name+"의 현재 파워  : " +power);
		
	}
}

Squirrel 클래스

package f_gameStudy;

public class Squirrel extends Game{
	public int count;
	public Squirrel(String name)
	{
		this.name = name;
		animal = "다람쥐"; 
		age = 0; 
		power = 100;
		energy = 120;
		count = 0; 
		System.out.println(this.name +"가 만들어졌습니다!");
	}
	@Override
	public void eat() // 밥먹기
	{
		energy += 5;
		count++;
		System.out.println(this.name +"의 에너지가 +5 되었습니다!");

	}
	@Override
	public void sleep() // 자기
	{
		energy += 10;
		count++;
		System.out.println(this.name +"의 에너지가 +10 되었습니다!");

	}
	@Override
	public void exercise() // 운동
	{
		energy -= 15;
		power += 15;
		count++;
		System.out.println(this.name +"의 에너지가 -15 되었습니다!");
		System.out.println(this.name +"의 파워가 +15 되었습니다!");

	}
	@Override
	public void aging() // 나이 먹기
	{
		if(count > 3) 
		{
			age++;
			count = 0;
			System.out.println(this.name +"의 나이가 +1 되었습니다!");
		}
	}
	@Override
	public void attack() // 공격하기
	{
		energy -= 10;
		power += 15;
		System.out.println(this.name +"의 에너지가 -10 되었습니다!");
		System.out.println(this.name +"의 파워가 +15 되었습니다!");
	}
	
	@Override
	public void print() // 현재 상태출력 하기
	{
		System.out.println("▷ "+this.name+"의 현재 나이  : " +age);
		System.out.println("▷ "+this.name+"의 현재 에너지 : " +energy);
		System.out.println("▷ "+this.name+"의 현재 파워  : " +power);
		
	}
}

Tiger 클래스

package f_gameStudy;

public class Tiger extends Game{
	public int count;
	public Tiger(String name)
	{
		this.name = name;
		animal = "호랑이"; 
		age = 0; 
		power = 150;
		energy = 170;
		count = 0; 
		System.out.println(this.name +"가 만들어졌습니다!");
	}
	@Override
	public void eat() // 밥먹기
	{
		energy += 20;
		count++;
		System.out.println(this.name +"의 에너지가 +20 되었습니다!");

	}
	@Override
	public void sleep() // 자기
	{
		energy += 15;
		count++;
		System.out.println(this.name +"의 에너지가 +15 되었습니다!");

	}
	@Override
	public void exercise() // 운동
	{
		energy -= 20;
		power += 20;
		count++;
		System.out.println(this.name +"의 에너지가 -20 되었습니다!");
		System.out.println(this.name +"의 파워가 +20 되었습니다!");

	}
	@Override
	public void aging() // 나이 먹기
	{
		if(count > 3) 
		{
			age++;
			count = 0;
			System.out.println(this.name +"의 나이가 +1 되었습니다!");
		}
	}
	@Override
	public void attack() // 공격하기
	{
		energy -= 40;
		power += 30;
		System.out.println(this.name +"의 에너지가 -40 되었습니다!");
		System.out.println(this.name +"의 파워가 +30 되었습니다!");
	}
	
	@Override
	public void print() // 현재 상태출력 하기
	{
		System.out.println("▷ "+this.name+"의 현재 나이  : " +age);
		System.out.println("▷ "+this.name+"의 현재 에너지 : " +energy);
		System.out.println("▷ "+this.name+"의 현재 파워  : " +power);
		
	}
}

GameStart 클래스

package f_gameStudy;

import e_oop.ScanUtil;

public class GameStart {

	public static void main(String[] args) {
		Game g = null;
		
		System.out.println("원하는 동물을 선택해주세요.");
		System.out.println("1. 고양이 \t2. 다람쥐 \t3. 호랑이");
		System.out.print(">");
		int num = ScanUtil.nextInt();
		System.out.println("이름을 지어주세요.");
		System.out.print(">");
		String name = ScanUtil.nextLine();
				
		if(num==1)
			g = new Cat(name);
		else if(num==2)
			g = new Squirrel(name);
		else if(num==3)
			g = new Tiger(name);
		boolean flag = true;
				
		while(flag) {
			System.out.println();
			System.out.println("─────────── 메뉴를 선택해주세요 ───────────");
			System.out.println("  0. 내 정보\n  1. 밥먹기\n  2. 재우기\n  3. 운동시키기\n  4. 사냥하기\n  5. 게임 끝내기");
			System.out.println("──────────────────────────────────────");
			System.out.print(">");
			num = ScanUtil.nextInt();
			switch(num) {
			case 0: g.showInfo(); break;
			case 1:
				System.out.println("《"+g.name+"가 밥을 먹습니다.》");
				g.eat();
				g.aging();
				g.print();
				break;
						
			case 2:
				System.out.println("《"+g.name+"가 낮잠을 잡니다.》");
				g.sleep();
				g.aging();
				g.print();
				break;
						
			case 3:
				System.out.println("《"+g.name+"가 운동을 합니다.》");
				g.exercise();
				g.aging();
				g.print();
				if(g.energy <= 0)
				{	System.out.println();
					System.out.println("《에너지가 부족하여 "+g.name+"가 죽었습니다.》");
					System.out.println("♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡ GAME OVER♡♡♡♡♡♡♡♡♡♡♡♡♡♡");
					flag = false;
				}
				break;
						
			case 4:
				System.out.println("《"+g.name+"가 사냥을 합니다.》");
				g.attack();
				g.print();
				if(g.energy <= 0)
				{	System.out.println();
					System.out.println("《에너지가 부족하여 "+g.name+"가 죽었습니다.》");
					System.out.println("♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡ GAME OVER♡♡♡♡♡♡♡♡♡♡♡♡♡♡");
					flag = false;
				}
				break;
						
			case 5:
				System.out.println("사용자 요청으로 게임이 종료됩니다.");
			flag = false;
			}
		}
	}

}

0개의 댓글

관련 채용 정보