메소드없이 만들어 보니 새삼 메소드의 소중함을 느꼈다
public class mainClass {
public static void main(String[] args) {
/*
* baseball
*
* random 1 ~ 10 -> 7 3 5
*
* user input -> 3개 숫자 1 2 3 -> 자리는 안맞앗는데 숫자는 맞는 경우 1ball 7 8 9 -> 1 strike 7 5
* 3 -> 1 strike 2 ball
*
* rNumber1 != rNumber2 !=renum3
*
* user input -> 같은 수가 입력이 되면 다시 입력!
*
* 10번의 기회 replay
*/
//선언
Scanner scanner = new Scanner(System.in);
int randArray[] = new int[3];
int userArray[] = new int[3];
int strike = 0;
int ball = 0;
int count = 10;
//랜덤함수 삽입
for (int i = 0; i < randArray.length; i++) {
randArray[i] = (int) (Math.random() * 10) + 1;
}
//중복 제거
for (int i = 0; i < randArray.length; i++) {
for(int j = 0; j < randArray.length; j ++) {
if(randArray[i] == randArray[j] && (i != j)) {
randArray[i] = (int)(Math.random() * 3) + 1;
j = -1;
}
}
}
while(true) {
for (int i : randArray) {
System.out.print(i + " ");
}
System.out.println();
System.out.println("============================");
System.out.println("남은 횟수: " + count);
//유저 입력 하기
System.out.println("생각한 값을 입력하세요");
for(int i = 0; i < 3; i ++) {
int userNum = scanner.nextInt();
if(userNum < 0 || userNum > 10) {
System.out.println("1~ 10 범위내의 값을 입력해주세요");
userArray[i] = scanner.nextInt();
} else {
userArray[i] = userNum;
for(int j = 0; j < 3; j ++ ) {
//중복 제거
if(userArray[i] == userArray[j] && (i != j)) {
System.out.println("값이 중복됩니다 다시 입력하세요");
userArray[i] = scanner.nextInt();
j = -1;
}
}
}
System.out.println( i + " 번째 " + userArray[i] + " ");
System.out.println();
}
//비교하기
for(int i = 0; i < 3; i ++) {
if(userArray[i] == randArray[i]) {
strike ++;
} else {
for(int j = 0; j < 3; j ++) {
if(userArray[i] == randArray[j] && (i != j)) {
ball++;
}
}
}
}
//카운트값 감소
count--;
//게임오버 구현
if(count == 0) {
System.out.println("게임 오버");
System.out.println("게임을 다시 하시곘습니까? (y/n)");
String answer = scanner.next();
if(answer.equalsIgnoreCase("y")) {
count = 10;
strike = 0;
ball = 0;
continue;
//초기화
} else {
System.out.println("게임을 종료합니다");
break;
}
}
//결과 출력
System.out.println("스트라이크 : " + strike);
System.out.println("ball : " + ball);
//값 초기화
if(strike == 3) {
System.out.println("정답입니다!!");
System.out.println(10 - count + "번만에 정답을 맞추셨습니다!");
System.out.println("게임을 다시 하시곘습니까? (y/n)");
String answer = scanner.next();
if(answer.equalsIgnoreCase("y")) {
count = 10;
strike = 0;
ball = 0;
// userArray = new int[3];
//랜덤함수 재 선언
//랜덤함수 삽입
for (int i = 0; i < randArray.length; i++) {
randArray[i] = (int) (Math.random() * 10) + 1;
}
//중복 제거
for (int i = 0; i < randArray.length; i++) {
for(int j = 0; j < randArray.length; j ++) {
if(randArray[i] == randArray[j] && (i != j)) {
randArray[i] = (int)(Math.random() * 3) + 1;
j = -1;
}
}
}
// 선언 종료
continue;
//초기화
} else {
System.out.println("게임을 종료합니다");
break;
}
}
strike = 0;
ball = 0;
}
scanner.close();
}
}
'Java > java 기초' 카테고리의 다른 글
간단한 CRUD 및 DOA(Data Access Object) (0) | 2019.11.22 |
---|---|
기본 정렬하기 (오름차순, 내림차순) (0) | 2019.11.22 |
카드를 섞을때 사용하는 방식 (0) | 2019.11.21 |
가위바위보 게임 만들기 (0) | 2019.11.21 |
랜덤 숫자 맞추기 게임 (0) | 2019.11.21 |