ArrayListを使ったデジタル野球ゲーム
package c_statement;
import java.util.ArrayList;
import e_oop.ScanUtil;
public class Baseball_ArrayList {
import java.util.ArrayList;
import e_oop.ScanUtil;
public class Baseball_ArrayList {
public static void main(String[] args) {
// ArrayList에 중복을 배제한 난수 3개 입력
ArrayList<Integer> numberList = new ArrayList<Integer>();
while (true) {
// 난수 입력
int r = (int) (Math.random() * 9) + 1;
if (!(numberList.contains(r))) {
numberList.add(r);
}
if (numberList.size() == 3) { // 난수 3개가 입력되면 종료
break;
}
}
System.out.print("문제 출력 : "); // 그냥 테스트용
for (int i = 0; i < numberList.size(); i++) {
System.out.print(numberList.get(i));
if (i != numberList.size() - 1) { // 출력을 보기좋게 하기 위함
System.out.print(", "); // 1, 2, 3의 형태로 출력
}
}
System.out.println();
// 새 ArrayList 2개 생성
// answerTemp에 먼저 입력받은 후 answerList에 옮겨 담기 위함
ArrayList<Integer> answerTemp = new ArrayList<Integer>();
ArrayList<Integer> answerList = new ArrayList<Integer>();
int cnt = 0;
while (true) {
System.out.print("3자리 숫자 입력 : ");
int input = ScanUtil.nextInt();
// % 10, / 10 -> 맨 앞자리부터 가져온다.(입력한 숫자와 반대로 입력됨)
for (int i = 0; i < 3; i++) {
answerTemp.add(input % 10);
input /= 10;
}
// 가져온 숫자를 거꾸로 저장하여 원래 숫자와 일치하게 바꾼다.
for (int i = answerTemp.size() - 1; i >= 0; i--) {
answerList.add(answerTemp.get(i));
}
int strike = 0;
int ball = 0;
int out = 0;
// 문제와 입력의 같은 자리가 일치 - strike
for (int i = 0; i < answerList.size(); i++) {
if (answerList.get(i) == numberList.get(i)) {
strike++;
}
// 문제와 입력의 같은 자리가 다르고 다른 자리가 일치 - ball
for (int j = 0; j < answerList.size(); j++) {
if (answerList.get(i) != numberList.get(i) && answerList.get(j) == numberList.get(i)) {
ball++;
}
}
}
out = 3 - strike - ball;
System.out.println(++cnt + "차 시도 : " + strike + " strike " + ball + " ball " + out + " out");
if (strike == 3) {
System.out.println("정답입니다.");
break;
}
// 다음 회차를 돌기 전에 ArrayList를 초기화한다.
answerTemp.clear();
answerList.clear();
}
}
}Reference
この問題について(ArrayListを使ったデジタル野球ゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@irisblossom/ArrayList를-사용한-숫자야구게임-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol