JAVA
190807 java 컴이랑 하는 야구게임
猫猫
2019. 8. 7. 15:26
반응형
야구게임 조건
컴퓨터가 난수로 1~9까지 3가지 수를 갖고 있고 (배열)
사람이 1~9까지 대충 입력한다 (배열)
컴퓨터가 정한 배열과 내 배열의 인덱스와 값이 서로 같으면 strike++
배열전체를 검사했을때, 인덱스값은 같지 않고, 값이 있다면 ball++
배열전체를 검사했을때, 값이 없다. out
시도횟수가 정해져 있어야 함.
스트라이크가 3일때 종료되어야 함
package prj190722;
import java.util.*;
public class Test_111112 {
public static void main(String[] args) {
int flag=10;
int[] com=new int[3];
int[] me =new int[3];
Scanner scan = new Scanner(System.in);
//com 난수 1~9까지
for(int i =0; i<3; i++) {
com[i]= (int)((Math.random()*9)+1);
//중복제거
for(int j =0; j<i; j++) {
if(com[i]==com[j]) {
i--;
break;
}
}
}
/////////////com 수 생성 끝
///////////검사하기
while(flag>0) { //도전횟수 10회
int str = 0; //계속해서 체크할 스트라이크
int ball=0; //ball
int out=0; //out
//사용자 숫자 입력받기
System.out.println("*******************************");
System.out.println("숫자 입력해보셈");
System.out.println("*******************************");
for(int i =0; i<3; i++) {
me[i] = scan.nextInt();
}
///확인용 출력해보기
System.out.println("입력한 숫자: " + Arrays.toString(me));
///판단 부
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){ //왜 이중으로 도느냐, com이 0일때 me0,1,2 돌아야 하고 com1일때 me 0,1,2돌아야하니까.
if(com[i] == me[j]){//com0과 me0,1,2 중 값이 하나라도 같으면
if(i == j) { //com이 0일때 me가 0이면 자리(인덱스 넘버), 값도 같은것
str++;//그래서 스트라이크++
}
else ball++; //아니면 값은 있는데 인덱스 넘버가 다른거니까 ball++
}
}
}
//3스트라이크 사용자 이김
if(str==3) {
System.out.println("you win");
break;
}
System.out.println("=====================================================");
flag--;
if(flag==0) { //도전기회 0이면 컴이 이김
System.out.println("you lose");
break;
}
else { //아닌경우 스트라이크, 볼 횟수, 도전 기회 출력
System.out.println("strike: " + str + "\t ball : "+ ball);
System.out.println(flag+"번 남았음");
}
}
}
}
- 개 지저분한 코드
- 심심해서 만들어 봄
- 조건들이 너무 많음
반응형