프로그래밍 언어 복습/JAVA

#55 JAVA 조금 더 깔끔해진 숫자야구게임 클래스화

사재원 교수 2022. 6. 11. 00:51

이제는 코딩 시작 전 몸풀기로 하게 된 숫자야구게임

 

 

package Test;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

//컴퓨터 숫자
class Comdata{
	Random r = new Random();
	int[] com = new int[3];
	
	
	Comdata() {
		for(int i=0;i<com.length;i++) {
			int num = r.nextInt(9)+1; //1 ~ 9 숫자 랜덤으로 선택
			com[i] = num;
			for(int j=0;j<i;j++) {
				if(com[j] == num) {
					i--;
				}
			}
		}
	}
	
}
//유저 숫자
class Userdata{
	Scanner sc = new Scanner(System.in);
	int[] userdata = new int[3];
	
	public int[] getusernum() {

		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;
	}
}

class Game{
	Scanner sc = new Scanner(System.in);

	
	public void Start(Comdata c,Userdata u) {

		int[] comdata = c.com; //컴퓨터 숫자
		System.out.println(Arrays.toString(comdata));
		boolean run = true;
		
		while(run) {
			int stk = 0;
			int ball = 0;
			System.out.print("게임 시작(1) 종료(2) 입력 : ");
			int num = sc.nextInt();
			
			if(num == 1) {
				int[] userdata = u.getusernum();
				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 ++;
							}
						}
					}
				}
				System.out.println("스트라이크 횟수 : " + stk);
				System.out.println("볼 횟수 : " + ball);
				
				if(stk == 3) {
					System.out.println("3 스트라이크 ! 게임 종료 ! ");
					run = false;
				}
				
				
			}else if(num ==2) {
				System.out.println("프로그램 종료");
				run = false;
			}else {
				System.out.println("다시 입력해주세요.");
			}
			
			
		}
	}
	
}


public class jaewon {
	public static void main(String[] args) {
		
		//숫자야구게임
		Comdata c = new Comdata();
		Userdata u = new Userdata();
		Game g = new Game();
		g.Start(c, u);
		
		
		
	}
}

 

 

감사합니다.