프로그래밍 언어 복습/JAVA
#25 JAVA 숫자야구게임 클래스화
사재원 교수
2022. 5. 20. 17:58
package hihihi;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
//컴퓨터 숫자 받기
class Comdata{
Random r = new Random();
public int[] getComnum() {
int[] comdata = new int[3];
for(int i=0;i<comdata.length;i++) {
comdata[i] = r.nextInt(9)+1;
for(int j=0;j<i;j++) {
if(comdata[i]==comdata[j]) {
i--;
}
}
}
return comdata;
}
}
//유저 숫자 받기
class Userdata{
Scanner sc = new Scanner(System.in);
public int[] getUsernum() {
int[] userdata = new int[3];
for(int i=0;i<userdata.length;i++) {
System.out.print(i+1 + "번째 숫자 입력 : ");
userdata[i] = sc.nextInt();
for(int j=0;j<i;j++) {
if(userdata[i]==userdata[j]) {
i--;
}
}
}
return userdata;
}
}
//두 숫자를 비교해서 strike와 ball를 추출
class StkorBall{
int stk = 0;
int ball = 0;
Comdata c = new Comdata();
int[] comdata = c.getComnum();
//System.out.println("컴퓨터 숫자 : " + Arrays.toString(comdata));
public int[] howfar(Userdata u,int[] comdata) {
int[] array = new int[2]; //array[0] = 스트라이크 , array[1] = 볼
u = new Userdata();
int[] userdata = u.getUsernum();
System.out.println("유저 숫자 : " + Arrays.toString(userdata));
for(int i=0;i<userdata.length;i++) {
for(int j=0;j<comdata.length;j++) {
if(userdata[i]==comdata[j]) {
if(i==j) {
stk++;
}else {
ball++;
}
}
}
}
array[0] = stk;
array[1] = ball;
return array;
}
}
//strike와 ball따라 stop keep going 실시
class GameStart{
public void gameStart() {
StkorBall sb = new StkorBall();
Comdata c = new Comdata();
Userdata u = new Userdata();
while(true) {
sb.stk = 0;
sb.ball = 0;
int[] array = sb.howfar(u, sb.comdata);
System.out.println("스트라이크 횟수 : " + array[0]);
System.out.println("볼 횟수 : " + array[1]);
if(array[0] == 3) {
System.out.println("3 스트라이크 ! 게임 종료 ! ");
break;
}
}
}
}
public class gta {
public static void main(String[] args) {
/*Comdata c = new Comdata();
int[] array = c.getComnum();
System.out.println(Arrays.toString(array));
Userdata u = new Userdata();
int[] array2 = u.getUsernum();
System.out.println(Arrays.toString(array2));
Comdata c = new Comdata();
Userdata u = new Userdata();
StkorBall sb = new StkorBall();
System.out.println();
int[] array3 = sb.howfar(u, c);
System.out.println(Arrays.toString(array3));*/
GameStart gs = new GameStart();
gs.gameStart();
}
}