初級JAVA 4-チャレンジ
3044 ワード
デジタル野球ゲームを作る
ex)123(私が入力した数字)
135:1 S 1 B 1 O(ランダムに抽出した数字と比較)
ストライク:数字と位置が同じ場合
ボール:数字は同じですが、位置は違います.
アウト:3つの数字がボールやストライクでなければ
ゲームを終了するには3桁の全中を打つ必要があります!
<作成順序>
1.乱数が表示されます(1~9桁の数字で重複しません)
2.ユーザー入力の受信
3.正解との比較->SBO
説明する
ex)123(私が入力した数字)
135:1 S 1 B 1 O(ランダムに抽出した数字と比較)
ストライク:数字と位置が同じ場合
ボール:数字は同じですが、位置は違います.
アウト:3つの数字がボールやストライクでなければ
ゲームを終了するには3桁の全中を打つ必要があります!
<作成順序>
1.乱数が表示されます(1~9桁の数字で重複しません)
2.ユーザー入力の受信
3.正解との比較->SBO
説明する
> Scanner sc = new Scanner(System.in);
/*
int random1 = (int)(Math.random() * 9) + 1;;
int random2 = (int)(Math.random() * 9) + 1;;
int random3 = (int)(Math.random() * 9) + 1;;
while(random1 == random2){
random2 = (int)(Math.random() * 9) + 1;
}
while(random1 == random3 || random2 == random3){
random3 = (int)(Math.random() * 9) + 1;
}
int strike = 0;
int ball = 0;
int out = 0;
System.out.println("============ 숫자 야구 게임 ============");
System.out.println("중복되지 않는 숫자 3개를 입력해주세요.");
do{
strike = 0;
ball = 0;
out = 0;
System.out.println("첫번째 숫자를 입력해주세요.>");
int num1 = Integer.parseInt(sc.nextLine());
System.out.println("두번째 숫자를 입력해주세요.>");
int num2 = Integer.parseInt(sc.nextLine());
System.out.println("세번째 숫자를 입력해주세요.>");
int num3 = Integer.parseInt(sc.nextLine());
if(random1 == num1){
strike++;
}else if(random1 == num2||random1 == num3){
ball++;
}else{
out++;
}if(random2==num2){
strike++;
}else if(random2 == num1||random2 == num3){
ball++;
}else{
out++;
}if(random3==num3){
strike++;
}else if(random3 == num1||random3 == num2){
ball++;
}else{
out++;
}if(strike == 3){
System.out.println("========== 3S! YOU WIN!!! ==========");
}else{
System.out.println(strike + "S " + ball + "B " + out + "O ");
System.out.println("========== 다시 시도해주세요!============");
}
}while(strike < 3);
先生の説明 int a1 = 0;
int a2 = 0;
int a3 = 0;
do{ a1 = (int)(Math.random() * 9) + 1;
a2 = (int)(Math.random() * 9) + 1;
a3 = (int)(Math.random() * 9) + 1;
}while( a1 == a2 || a1 ==a3 || a2 == a3);
int count = 0; //사용자가 몇번만에 정답을 맞추는지 횟수
while(true){
System.out.println("3자리 숫자");
int input = Integer.parseInt(sc.nextLine());
int i3 = input % 10; //1의자리
input /= 10;
int i2 = input % 10; //10의 자리
input /= 10;
int i1 = input % 10; //100의 자리
int strike = 0;
int ball = 0;
int out = 0;
if(a1 == i1) strike++;
if(a2 == i2) strike++;
if(a3 == i3) strike++;
if(a1 == i2 || a1 == i3) ball++;
if(a2 == i1 || a2 == i3) ball++;
if(a3 == i1 || a3 == i2) ball++;
out = 3 - strike - ball;
System.out.println(++count + " 차 시도(" + i1 + i2 + i3+" ) : " + strike + "S" + ball + "B" + out + "O");
System.out.println("-------------------------------");
if(strike == 3){
System.out.println("정답입니다!");
break;
}
Reference
この問題について(初級JAVA 4-チャレンジ), 我々は、より多くの情報をここで見つけました https://velog.io/@hazel_jo/초급JAVA-4-과제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol