본문 바로가기

Java/실습

[Java] 배스킨라빈스 31게임

배스킨라빈스 31게임을 아시나요?

 

이번시간에는 그 게임을 코딩으로 구현해보겠습니다.

 

먼저 1번을 입력 받으면 게임을 시작합니다.

 

유저부터 수를 입력받고

 

컴퓨터는 랜덤한 정수 1~3까지 돌려 진행시켜서

 

최종적으로 31이 나오면 지게됩니다.

 

2번을 입력 받으면 게임의 전적이 보여지고

 

3번을 입력 받으면 종료됩니다.

 

option :while(true) {

System.out.println("============================");

System.out.println("1.게임 시작 2. 전적 확인 3. 종료");

System.out.println("============================");

int option = sc.nextInt();

 

먼저 무한 반복을 걸어주고 옵션을 입력받습니다.

 

옵션이 1번이면 게임을 진행합니다.

 

if(option == 1) {

game :while(true) {

com_rnum = r.nextInt(3) + 1;

System.out.println("진행할 턴을 입력하세요 : ");

user_num = sc.nextInt();

if(user_num >3 ) {

user_num = 0;

System.out.println("턴은 3이하로 입력해주세요.");

user_num = sc.nextInt();

}

 

컴퓨터의 턴은 랜덤한 정수로 처리하고

 

유저의 턴은 1~3까지 입력받습니다.

 

이때 3을 초과하면 다시 입력받습니다.

 

 

System.out.println("============================");

System.out.printf("유저 : %d턴\n" , user_num);

System.out.println("============================");

for(int i = 0; i < user_num; i ++) {

sum += 1;

System.out.printf("숫자 : %d\n" , sum);

if(sum == 31) {

System.out.println("『유저 패배』");

user_lose++;

sum = 0;

break game;

}

}

 

sum에 턴의 수를 계속 더하고 

 

31이되면 반복문을 종료하고

 

lose 카운트를 1 증가시킵니다.

 

System.out.println("============================");

System.out.printf("컴퓨터 : %d턴\n" , com_rnum);

System.out.println("============================");

for( int i = 0; i < com_rnum; i ++) {

sum += 1;

System.out.printf("숫자 : %d\n" , sum);

if(sum == 31) {

System.out.println("『컴퓨터 패배』");

com_lose++;

sum = 0;

break game;}

} }

 

컴퓨터도 마찬가지로 진행시킵니다.

 

else if(option == 2) {

System.out.println("=======================");

System.out.println("==== 전적 ====");

System.out.println("=======================");

System.out.printf("컴퓨터 : %d패\n",com_lose);

System.out.printf("유저 : %d패\n", user_lose);

}

 

2번을 입력받으면 lose카운트를 출력시킵니다.

 

else if(option == 3) {

System.out.println("게임을 종료합니다!");

break option;

}

 

3번을 입력받으면 상위 반복문을 종료시켜

 

프로그램을 종료합니다.

 

else {

System.out.println("옵션을 다시 입력해주세요.");

continue;

}

 

옵션의 번호가 1,2,3이 아니라면

 

다른 옵션을 입력받도록 continue로 처리합니다.

 

 

생략....

숫자 : 20

숫자 : 21

숫자 : 22

============================

컴퓨터 : 1턴

============================

숫자 : 23

진행할 턴을 입력하세요 :

3

============================

유저 : 3턴

============================

숫자 : 24

숫자 : 25

숫자 : 26

============================

컴퓨터 : 2턴

============================

숫자 : 27

숫자 : 28

진행할 턴을 입력하세요 :

3

============================

유저 : 3턴

============================

숫자 : 29

숫자 : 30

숫자 : 31

『유저 패배』

============================

1.게임 시작 2. 전적 확인 3. 종료

============================

2

=======================

==== 전적 ====

=======================

컴퓨터 : 0패

유저 : 1패

============================

1.게임 시작 2. 전적 확인 3. 종료

============================

3

게임을 종료합니다!

 

 

잘 출력되는 모습이네요.

 

조건문과 반복문,

 

break문의 활용 능력을 요구하는

 

실습이었습니다.

 

 

'Java > 실습' 카테고리의 다른 글

[Java] 로또  (0) 2024.12.05
[Java] 가위 바위 보  (1) 2024.12.04
[Java] 거스름돈 환전  (1) 2024.12.04
[Java] 문자 제거하기  (0) 2024.12.03
[Java] 세균 증식  (0) 2024.12.03