본문 바로가기
JAVA/반복문

while문 예제(2)

by pms93 2022. 7. 21.
package loop_while;

import java.util.Random;
import java.util.Scanner;

public class LoopWhileQuiz2 {

	public static void main(String[] args) {
		
		// Quiz1
		// 1 ~ 6 주사위 수 3개를 컴퓨터와 유저가 무작위로 부여받아 겨루는 게임 
		Scanner sc = new Scanner(System.in);
		Random rand = new Random();
		int com = 0, total = 0, win = 0, lose = 0, draw = 0;
		int sel, diceTotal = 0, myDice, money = 10000, bat = 0;
		char sel2 = 'Y';

		while (true) {
			System.out.print("=== Dice Game ===\n1. Game Start\n2. Game Score\n3. End Game\n: ");
			try {
				sel = sc.nextInt();
			} catch (Exception e) {
				System.out.println("메뉴 확인 후 다시 입력하세요");
				sc.nextLine();
				continue;
			}

			switch (sel) {
			case 1:
				while (sel2 != 'N') {
					if (money <= 0) {
						System.out.println("배팅금액을 모두 잃었습니다. 종료합니다.");
						System.exit(0);
					}

					System.out.printf("게임을 시작합니다\n소지금액 : %d원\n", money);
					diceTotal = 0;
					total++;
					for (int i = 0; i < 3; i++) {
						myDice = rand.nextInt(6) + 1;
						System.out.printf("%d번째 주사위 : %d\n", i, myDice);
						diceTotal += myDice;
					}
					System.out.printf("내 주사위 총 합 : %d\n", diceTotal);

					boolean flag = true;
					while (flag) {
						bat = 0;
						try {
							System.out.print("배팅 금액을 입력하세요\n: ");
							bat = sc.nextInt();
						} catch (Exception e) {
							System.out.println("잘못된 입력입니다.");
							sc.nextLine();
							continue;
						}
						if (bat > 0 && bat <= money)
							flag = false;
					}

					com = rand.nextInt(16) + 3;
					System.out.printf("컴퓨터 주사위 총 합 : %d\n", com);

					if (diceTotal > com) {
						money += bat;
						win++;
						System.out.printf("이겼습니다. %d원을 획득하였습니다.", bat);
					} else if (diceTotal == com) {
						draw++;
						System.out.print("비겼습니다.");
					} else {
						money -= bat;
						lose++;
						System.out.printf("졌습니다. %d원을 잃으셨습니다.", bat);
					}

					while (true) {
						System.out.println("계속 하시겠습니까?(y/n) : ");
						System.out.println(sel2);
						sel2 = sc.next().toUpperCase().charAt(0);
						if (sel2 == 'Y' || sel2 == 'N')
							break;
					}

				}

				sel2 = 'Y';
				break;

			case 2:
				System.out.printf("현재 %d전 %d승 %d무 %d패 입니다.\n", total, win, draw, lose);
				break;

			case 3:
				System.out.println("프로그램을 종료합니다.");
				System.exit(0);

			}

		}
	}
}

'JAVA > 반복문' 카테고리의 다른 글

while문 예제(1)  (0) 2022.07.21
반복문(do-while)  (0) 2022.07.20
반복문(while)  (0) 2022.07.20
for문 예제(2)  (0) 2022.07.20
for문 예제(1)  (0) 2022.07.20