2021.1.13
첫 번째 시도
import java.util.Scanner;
import java.util.Random;
public class Baseball {
public static void main(String[] args) throws Exception {
Random rand = new Random();
int[] ans = {0, 0, 0};
for (int i = 0; i < 3; i++){
boolean isoverlap = true;
while (isoverlap) {
isoverlap = false;
int num = rand.nextInt(10);
for (int j = 0; j < i; j++){
if (num == ans[j] || num == 0){
isoverlap = true;
}
}
if (!isoverlap) {
ans[i] = num;
}
}
}
int ans_num = ans[0] * 100 + ans[1] * 10 + ans[2];
System.out.println(ans[0] + "" + ans[1] + "" + ans[2]);
boolean iscorrect = false;
int cnt = 0;
System.out.println("숫자야구게임을 시작합니다.");
while(!iscorrect) {
cnt++;
System.out.println(cnt + " 번째 기회입니다.");
Scanner sc = new Scanner(System.in);
boolean isoverlap = true;
int strike = 0;
int ball = 0;
int[] try_arr = new int[3];
int try_ans = 0;
while (isoverlap) {
try_ans = sc.nextInt();
try_arr[0] = (try_ans - try_ans % 100) / 100;
try_arr[1] = (try_ans % 100 - try_ans % 100 % 10) / 10;
try_arr[2] = try_ans % 10;
if (try_arr[0] == try_arr[1] || try_arr[0] == try_arr[2] || try_arr[1] == try_arr[2]) {
isoverlap = true;
} else {
isoverlap = false;
}
if (isoverlap) {
System.out.println("중복된 숫자가 존재합니다. 다시 입력해주세요.");
}
}
if (try_ans == ans_num) {
iscorrect = true;
} else {
System.out.println(try_ans + "를 입력하셨습니다.");
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
if (try_arr[i] == ans[j]){
if (i == j) {
strike++;
} else {
ball++;
}
}
}
}
System.out.println(strike + "S" + ball + "B 입니다.");
System.out.println("");
}
}
System.out.println("정답은 " + ans_num + " 이었습니다!");
System.out.println(cnt + "번 만에 정답을 맞추셨습니다!");
}
}
첨삭1
import java.util.Scanner;
import java.util.Random;
public class Baseball {
public static void main(String[] args) throws Exception {
Random rand = new Random();
int[] ans = {0, 0, 0};
for (int i = 0; i < 3; i++){
boolean isoverlap = true;
while (isoverlap) {
boolean fail = false;
int num = rand.nextInt(10);
for (int j = 0; j < i; j++){
if (num == ans[j] || num == 0){
fail = true;
break;
}
}
if (!fail) {
ans[i] = num;
isoverlap = false;
}
}
}
int ans_num = ans[0] * 100 + ans[1] * 10 + ans[2];
System.out.println(ans[0] + "" + ans[1] + "" + ans[2]);
boolean iscorrect = false;
int cnt = 0;
System.out.println("숫자야구게임을 시작합니다.");
while(!iscorrect) {
cnt++;
System.out.println(cnt + " 번째 기회입니다.");
Scanner sc = new Scanner(System.in);
boolean isoverlap = true;
int strike = 0;
int ball = 0;
int[] try_arr = new int[3];
int try_ans = 0;
while (isoverlap) {
try_ans = sc.nextInt();
try_arr[0] = (try_ans - try_ans % 100) / 100;
try_arr[1] = (try_ans % 100 - try_ans % 100 % 10) / 10;
try_arr[2] = try_ans % 10;
if (try_arr[0] == 0 || try_arr[1] == 0 || try_arr[2] == 0) {
System.out.println("0이 포함된 수 입니다. 다시 입력해주세요.");
} else if (!(try_arr[0] == try_arr[1] || try_arr[0] == try_arr[2] || try_arr[1] == try_arr[2])) {
isoverlap = false;
} else {
System.out.println("중복된 숫자가 존재합니다. 다시 입력해주세요.");
}
}
if (try_ans == ans_num) {
iscorrect = true;
} else {
System.out.println(try_ans + "를 입력하셨습니다.");
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
if (try_arr[i] == ans[j]){
if (i == j) {
strike++;
} else {
ball++;
}
}
}
}
System.out.println(strike + "S" + ball + "B 입니다.");
System.out.println("");
}
}
System.out.println("정답은 " + ans_num + " 이었습니다!");
System.out.println(cnt + "번 만에 정답을 맞추셨습니다!");
}
}
첨삭2