본문 바로가기

Java

메서드를 활용한 아기 밥주기 게임

아기에게 밥과 물을 주면서 잠을 관리하는 프로그램을 짜봤다.

 

클래스에서 아기의 속성을 정의하고

아기의 행동을 구현했다.

package com.my;
// Baby 클래스 설계
public class Baby1 {

    //속성
    private String name;
    private int hunger;
    private int thirst;
    private int sleepy;

    //생성자
    public Baby1(String babyNm, int babyHn, int babyTs, int babySp) {
        name = babyNm;
        hunger = babyHn;
        thirst = babyTs;
        sleepy = babySp;
    }

    //getter 메서드
    public int getSleepy() {
        return sleepy;
    }
    public int getHunger() {
        return hunger;
    }
    public int getThirst() {
        return thirst;
    }

    //메서드
    public void showInfo() {
        System.out.println("===== 아기상태창 =====");
        System.out.println("배고픔" + hunger);
        System.out.println("목마름" + thirst);
        System.out.println("졸림" + sleepy);
    }

    // 물마심
    public void drinkWater(int amount) {
        if (amount >= thirst) {
            System.out.println(thirst + "ml 물을 마셨다");
            thirst -= thirst;
            sleepy += 5;
            System.out.println("목마름:" + thirst);
            System.out.println("졸림:" + sleepy);

        } else if (thirst > amount && amount >= 0) {
            System.out.println(amount + "ml 물을 마셨다");
            thirst -= amount;
            sleepy += 5;
            System.out.println("목마름:" + thirst);
            System.out.println("졸림:" + sleepy);
        }
    }
    // 밥먹음
    public void eatFood(int amount) {
        if (amount >= hunger) {
            System.out.println(hunger + "g 밥을 먹었다");
            hunger -= hunger;
            sleepy += 15;
            System.out.println("배고픔:" + hunger);
            System.out.println("졸림:" + sleepy);

        } else if (hunger > amount && amount >= 0) {
            System.out.println(amount + "g 밥을 먹었다");
            hunger -= amount;
            sleepy += 15;
            System.out.println("배고픔:" + hunger);
            System.out.println("졸림:" + sleepy);
        }
    }
    // 잠
    public void goToSleep(int amount) {
        if (amount <= sleepy) {
            System.out.println("잠을 잤다");
            sleepy -= amount;
            hunger += 25;
            thirst += 25;
            System.out.println("졸림:" + sleepy);
            System.out.println("배고픔:" + hunger);
            System.out.println("목마름:" + thirst);

        } else if (amount > sleepy) {
            System.out.println(amount + "잠을 자지 않았다");
            sleepy -= 10;
            System.out.println("졸림:" + sleepy);
        }
    }
}//end of class

 

규칙은

졸림이 100이 되면 게임오버

배고픔과 목마름이 0이 되면 승리하는 것

package com.my;
import java.util.Scanner;
public class BabyMainTest {
    //main
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        Baby1 baby1 = new Baby1("민준", 100, 100, 50);

        while (true) {

            int outerBSleepy = baby1.getSleepy();
            int outerBHunger = baby1.getHunger();
            int outerBThirst = baby1.getThirst();

            if (outerBSleepy > 100) {
                System.out.println("게임오버");
                break;
            }
            if (outerBHunger <= 0 && outerBThirst <= 0) {
                System.out.println("아기는 행복합니다");
                break;
            }

            System.out.println("1.물주기 2.밥주기 3.재우기 0.종료");
            int choice = sc.nextInt();
            if (choice == 1) {
                baby1.drinkWater(20);
            } else if (choice == 2) {
                baby1.eatFood(20);
            } else if (choice == 3) {
                baby1.goToSleep(50);
            } else if (choice == 0) {
                System.out.println("게임오버");
                break;
            }
        }
    }//end of main
}//end of class

 

승리 조건 달성

패배 조건 달성

'Java' 카테고리의 다른 글

배열 array  (0) 2025.04.17
static 변수 개념  (0) 2025.04.17
getter, setter메서드와 this 키워드  (0) 2025.04.16
접근 제어 지시자 Accecc Modifier  (0) 2025.04.16
생성자를 호출해 클래스 상호작용  (0) 2025.04.16