다마고치 게임만들기
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;
}
}
}
}