2022年01月6日[java]シンプルゲーム


今日はランダム関数で3つの簡単なゲームをしました.
Up & Dowm
BR31
Dice Game
この3つのゲームをしました.
今日は時間がないので学習コードだけアップロード
明日から、勉強しながら、復習しながら、内容を整理したいと思います.
ゲームの内容でも簡単に書きます.
Up & Down
ランダム関数を使用して1~100の間の任意の数値を変数に指定し、指定した数値が入力した数値より大きい場合はDownを出力します.指定した数字の範囲を絞るゲーム.
public void que1() {
		Scanner sc = new Scanner(System.in);
		Random r = new Random();
		int time = 0;
		while (true) {

			System.out.println("====== Up & Down Game ======");
			System.out.println("1. Game Start");
			System.out.println("2. Game Score");
			System.out.println("3. End Game");
			System.out.print("> ");
			int select = sc.nextInt();
			int newTime;
			switch (select) {
			case 1:
				newTime = 0;
				int comnum = r.nextInt(99) + 1;
				while (true) {
					int pernum;
					System.out.print((newTime + 1) + "회차 번호 입력 : ");
					while (true) {
						pernum = sc.nextInt();
						if (pernum > 100 || pernum < 0) {
							System.out.println("입력값을 확인하세요");
							continue;
						} else {
							break;
						}
					} // while done
					if (pernum < 1 || pernum > 99) {
						System.out.println("입력값을 확인하세요");
						continue;
					} else if (comnum > pernum) {
						System.out.println("<<Up>>");
						newTime++;
						continue;
					} else if (comnum < pernum) {
						System.out.println("<<Down>>");
						newTime++;
						continue;
					} else if (comnum == pernum) {
						System.out.println("<<정답>>");
						newTime++;
					}
					if (newTime < time) {
						time = newTime;
					}
					break;
				}
				break;
			// case 1 done
			case 2:
				if (time == 10000000) {
					System.out.println("아직 최고 기록이 없습니다.");
				} else {
					System.out.println("현재 최고 기록은 " + time + "회 입니다.");
					break;
				}
				// case 2 done
			case 3:
				break;
			// case 3 done
			default:
				System.out.println("잘못입력하셨습니다.");
			}// switch done
			if (select == 3) {
				System.out.println("게임을 종료합니다.");
				break;
			}
		} // while dine
	}// que1 done
BR31
パソコンと1対1でBaskinRobbins 31ゲームをする番組です.一度に最大3つの数字を言い出すことができて、31の一方を叫んで負けます.
でもこのゲームは1対1なら先攻で必ず勝つ1番目に1、2と言っても、相手が次に何回言っても、相手が言った回数と私が次に言った回数の和は4で、相手のラウンドは必ず31になります.Xネットゲーム
public void que2() {
		Scanner sc = new Scanner(System.in);
		Random r = new Random();
		int win = 0;
		int lose = 0;
		while (true) {
			System.out.println("====== Baskin Robbins31 Game ======");
			System.out.println("1. Game Start");
			System.out.println("2. Game Score");
			System.out.println("3. End Game");
			System.out.print("선택 > ");
			int select = sc.nextInt();
			int usernum = 0;
			int comnum = 0;
			int sum = usernum + comnum;
			int newsum = 0;
			switch (select) {
			case 1:
				System.out.println("<< Game Start >>");
				while (true) {
					while (newsum <= 31) {
						System.out.println("<< Your Turn >>");

						while (true) {
							System.out.print("Input Number : ");
							usernum = sc.nextInt();
							if (usernum > 3 || usernum < 1) {
								System.out.println("1~3사이값을 입력해주세요");
								continue;
							} else {
								break;
							}
						} // while done
						comnum = r.nextInt(3) + 1;
						sum = usernum + comnum;
						newsum = newsum + sum;
						for (int i = newsum - usernum - comnum + 1; i <= newsum - comnum; i++) {
							System.out.println(i + "!");
							if (i == 31) {
								System.out.println("패배!");
								lose++;
								break;
							}
						}
						if (newsum - comnum < 31) {
							System.out.println("<< Computer Turn >>");
							for (int j = newsum - comnum + 1; j <= newsum; j++) {
								System.out.println(j + "!");

								if (j == 31) {
									System.out.println("승리!");
									win++;
									break;
								}
							}
						} else if (newsum - comnum > 31) {
							break;
						}
						System.out.println(sum);
						System.out.println(newsum);
						break;
					}
					if (newsum < 31) {
						continue;
					} else {
						break;
					}
					// while done
				}
				break;// case 1 done
			case 2:
				System.out.println("<< 당신의 전적 >>");
				System.out.println("Win : " + win);
				System.out.println("Lose : " + lose);
				break;// case 2 done
			case 3:
				break;// case 3 done
			default:
				System.out.println("잘못입력하셨습니다.");
			}// switch done
			if (select == 3) {
				System.out.println("게임을 종료합니다.");
				break;
			} // if done
		} // while done
	}// que2 done
Dice Game
3つのサイコロを合わせて、もっと高い人が勝つゲームです.賭けてもいいです.お金がなければ、追い出されたコードも加わった.
上の2つのゲームをして、間違えて、このコードから注釈をつけます.コメントは本当に重要です...
public void que3() {
		Scanner sc = new Scanner(System.in);
		Random r = new Random();
		int money = 10000; // 소지금
		int win = 0; // 이긴 횟수
		int lose = 0; // 진 횟수
		int draw = 0; // 비긴 횟수
		boolean gameEnd = false;

		while (true) {
			System.out.println("====== Dice Game ======");
			System.out.println("1. Game Start");
			System.out.println("2. Game Score");
			System.out.println("3. End Game");
			System.out.print("선택 > ");
			int select = sc.nextInt(); // 게임 메뉴 선택
			int userdice1, userdice2, userdice3; // 플레이어의 주사위 값 3개
			int comdice1, comdice2, comdice3; // 컴퓨터의 주사위 값 3개
			char choice1; // 배팅 선택
			char choice2; // 재도전 여부

			switch (select) { // swtich start
			case 1:
				if (money <= 0) { // 게임을 하려했지만 돈이 없는 경우
					System.out.println("잔액이 없습니다. bye~");
					break;
				}
				while (true) {
					System.out.println("<< Game Start >>");
					userdice1 = r.nextInt(6) + 1;
					userdice2 = r.nextInt(6) + 1;
					userdice3 = r.nextInt(6) + 1; // 플레이어 주사위 값 변수에 랜덤 값 부여
					comdice1 = r.nextInt(6) + 1;
					comdice2 = r.nextInt(6) + 1;
					comdice3 = r.nextInt(6) + 1; // 컴퓨터 주사위 값 변수에 랜덤 값 부여
					System.out.println("1번째 주사위 값 : " + userdice1);
					System.out.println("2번째 주사위 값 : " + userdice2);
					System.out.println("3번째 주사위 값 : " + userdice3);
					int usersum = userdice1 + userdice2 + userdice3; // 내 주사위 총 합 변수
					System.out.println("내 주사위 총 합 :" + usersum);
					System.out.println("배팅 하시겠습니까?[y/n]"); // 배팅 여부 선택
					int bat;
					choice1 = sc.next().charAt(0);
					if (choice1 == 'y') { // 배팅을 한다고 했을 경우
						System.out.print("얼마를 배팅하시겠습니까(현재 내 소지금 " + money + "원) :");
						while (true) {
							bat = sc.nextInt();
							if (money < bat) { // 배팅하려는 금액이 소유한 돈보다 큰 경우
								System.out.println("금액이 부족합니다. 다시 입력해주세요.");
								continue;
							}
							break;
						}
						System.out.println("컴퓨터 1번째 주사위 값 : " + comdice1);
						System.out.println("컴퓨터 2번째 주사위 값 : " + comdice2);
						System.out.println("컴퓨터 3번째 주사위 값 : " + comdice3);
						int comsum = comdice1 + comdice2 + comdice3;// 컴퓨터 주사위 총 합 변수
						System.out.println("컴퓨터 주사위 총 합 : " + comsum);
						System.out.println("<< 결과 >>");
						if (usersum > comsum) { // 승리시 결과
							System.out.println("승리!");
							System.out.println("+" + bat + "원!"); // 얻은 금액 표시
							money += bat; // 총액에 배팅금액을 추가
							win++;
						} else if (usersum < comsum) {// 패배시 결과
							System.out.println("패배!");
							System.out.println("-" + bat + "원!"); // 잃은 금액 표시
							money -= bat;
							lose++;
							if (money <= 0) { // 돈이 0원 밑으로 떨어졌을 경우;
								System.out.println("거지는 안받아요~");
								break;
							}
						} else { // 비겼을시 결과
							System.out.println("아니 자꾸 안비겨서 어떻게 쓸지는 모르겠는데 대충 비겼다고 뜨겠죠??");
							draw++;
						}
						System.out.println("한번 더 하시겠습니까[y/n]"); // 재도전 묻기
						choice2 = sc.next().charAt(0);
						if (choice2 == 'y') { // 재도전에 동의했을 경우
							continue;
						} else if (choice2 == 'n') { // 재도전에 동의하지 않았을 경우
							break;
						} else { // 'y', 'n' 이외의 다른 char를 입력했을 경우
							break;
						}
					} else if (choice1 == 'n') { // 배팅을 안한다고 했을 경우
						break;
					} else if (choice1 != 'y' || choice1 != 'n') { // 배팅 여부에 이상한 char값을 넣은 경우
						continue;
					}
					break;
				} // while done
				break;// case 1 done
			case 2:
				System.out.println("<< 당신의 전적 >>");
				System.out.println("Win : " + win);
				System.out.println("Lose : " + lose);
				System.out.println("내 소지금 : " + money + "원");
				break;// case 2 done
			case 3:
				gameEnd = true;
				break;// case 3 done
			default:
				System.out.println("잘못입력하셨습니다.");
				break;// default done
			}// switch done
			if (gameEnd == true) {
				System.out.println("게임을 종료합니다.");
				break;
			}

		}
	}
今日はもう终わったけど、次はもっと良い品质のために决心する..
がんばってね!