순수 자바로 야구게임을 구현하였다.
Class는 1개이며, 게임 방식은 아래와 같다.
1) 컴퓨터는 프로그램이 시작할 때, 랜덤한 수 세자리를 갖고 있는다.
2) 사용자는 한 자리 수당 1~9까지의 총 3개의 숫자를 한번에 입력한다. (예 : 392)
3) 사용자가 입력한 숫자와 컴퓨터가 가지고 있는 랜덤한 수 세자리를 각각 비교하여 결과를 도출한다.
- 스트라이크 : 숫자의 자리수, 숫자가 모두 같을 때
- 볼 : 숫자는 맞지만 자리가 다를 때
- 아웃 : 숫자가 컴퓨터가 가지고 있는 랜덤한 수 세자리와 다를 때
package c_statement;
import java.util.Scanner;
public class Baseball {
public static void main(String[] args) {
/*
* 135 123 : 1S 1B 1O 531 : 1S 2B 0O 321 : 0S 2B 1O
*
* 스트라이크 : 1이라는 숫자와 자리수도같을 때 볼 : 3이라는 숫자가 있지만 자리수가 다름 아웃 : 아예 없을 경우
*
* 본 코드에서 해결되지 않은 문제 : 사용자 입력이 null 일때 해결이 안됨.
*/
// 1부터 9까지의 숫자를 3개 발생시키고 겹치지 않게
int random1 = (int) (Math.random() * 9) + 1;
int random2 = (int) (Math.random() * 9) + 1;
int random3 = (int) (Math.random() * 9) + 1;
//몇회 시도인지 판별
int count = 1;
// 게임종료 flag
boolean result = true;
while (true) {
random1 = (int) (Math.random() * 9) + 1;
random2 = (int) (Math.random() * 9) + 1;
random3 = (int) (Math.random() * 9) + 1;
if(random1 != random2 && random1 != random3 && random2 != random3){
break;
}
}
// 스트라이크가 3개가 될 때 까지 무한반복
while (result) {
//
int strike = 0;
int ball = 0;
int out = 0;
System.out.print(random1 + "\t");
System.out.print(random2 + "\t");
System.out.println(random3);
//3자리수 한번에 받기
System.out.print("3자리 숫자>");
int input = Integer.parseInt(s.nextLine());
int userNum3 = input % 10;
input /= 10;
int userNum2 = input % 10;
input /= 10;
int userNum1 = input % 10;
if (random1 == userNum1) {
strike++;
} else if (random1 == userNum2 || random1 == userNum3) {
ball++;
} else{
out++;
}
// ==================
if (random2 == userNum2) {
strike++;
} else if (random2 == userNum1 || random2 == userNum3) {
ball++;
} else{
out++;
}
// ==================
if (random3 == userNum3) {
strike++;
} else if (random3 == userNum1 || random3 == userNum2) {
ball++;
} else{
out++;
}
// 결과 : =======================
System.out.println("==============================");
System.out.print(count+"차 시도 결과 : ");
System.out.println("스트라이크 : " + strike + " 볼 : " + ball + " 아웃 : "
+ out);
// 동기부여 ==============================
if (strike == 3) {
System.out.println("성공!!!!!!!!!야구게임을 종료합니다.");
break;
} else if (strike == 2) {
System.out.println("오오!!! 조금만 더 시도해 보세요");
count++;
} else {
System.out.println("잘 생각해 보시오ㅋㅋ");
count++;
}
System.out.println("==========================");
}
}
}
Uploaded by Notion2Tistory v1.1.0