개발동

숫자 야구 게임 본문

Programming/Java

숫자 야구 게임

DuckFin 2021. 9. 19. 15:31

숫자야구게임

1. 정답을 난수로 구한다.
- 1~ 9까지 3개의 수. 중복되면 안됨.

2. 사용자의 입력을 받는다.
- 1~9까지의 3개의 수. 중복되면 안됨.

3. 판정
- 볼: 자리가 다르고, 값이 일치
- 스: 자리가 같고, 값도 일치

4. 3스트라이크 이면 종료.
=============================================
*추가
1. 새게임기능
2. 종료기능

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

class Game{
	final int arr_SIZE = 3;
	int [] arr= new int[arr_SIZE];
	int [] arr_sort= new int[arr_SIZE];

	int [] arrInput= new int[arr_SIZE];
	int [] arrInput_sort= new int[arr_SIZE];
	
	void clone(int[] clone, int[] arr) {
		for(int i=0; i<arr.length; i++) {
			clone[i]=arr[i];
		}
	}

	void rand_10(int[] arr) {
		Random rand = new Random();
		
		for(int i = 0; i<arr.length; i++)
		{
			arr[i]=rand.nextInt(9)+1;
		}
	}
	

	void sort(int[] arr) {//오름차순 정렬
		int tmp;
		for(int i=0; i<arr.length; i++)
		{
			for(int j=i+1; j<arr.length; j++)
			{
				if(arr[i]>arr[j])
				{tmp=arr[j];
				arr[j]=arr[i];
				arr[i]=tmp;
				}				
			}
		}
	}
	
	void printArr(int[] arr) {
		for(int i =0; i<arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
	}

	boolean equal_chk(int[] arr1, int[]arr2) {
		for(int i=0; i<arr.length; i++) 
		{	
			if(arr1[i]!=arr2[i])
				return false;
		}
		return true; //모든 항목에서 서로 다름이 확인 되지 않을때 true 반환
	}

	
}
public class BaseballGame {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);

		while(true) {		

			Game g1 = new Game();
			g1.rand_10(g1.arr);
			
			System.out.println("===========================");
			System.out.println("정답");
			g1.printArr(g1.arr);
			System.out.println();
			System.out.println("===========================");
			
			g1.clone(g1.arr_sort, g1.arr);
			g1.sort(g1.arr_sort);
			//오름차순 정렬된 배열

//			System.out.println("정답[오름차순]");
//			g1.printArr(g1.arr_sort);
//			System.out.println();
				
			while(true) {
				
				for(int i=0; i<g1.arr_SIZE; i++)
				{
					if(i==0)
					{
						System.out.println();
						System.out.println("1~9중 하나의 수를 입력하세요. (중복X)");
					}
					
					if(i!=g1.arr_SIZE)
						System.out.print((i+1)+"번째 수 입력: ");
					else
						System.out.print("마지막 수 입력: ");
					
					g1.arrInput[i]=scanner.nextInt();
				}
				g1.printArr(g1.arrInput);
				
				g1.clone(g1.arrInput_sort, g1.arrInput); g1.sort(g1.arrInput_sort);
                 //입력된 배열을 오름차순 정렬시킴         
				
				if(g1.equal_chk(g1.arr, g1.arrInput))
				{
					System.out.println(); System.out.println();
					System.out.println("<<스트라이크 : 자리가 같고, 값도 일치>>");
					break; //해당 반복문을 빠져나감
					
				}else if(g1.equal_chk(g1.arr_sort, g1.arrInput_sort)) {
					System.out.println(); System.out.println();
					System.out.println("<<볼 : 자리가 다르나, 값이 일치>>");
				}
				System.out.println();
			}
			
			
			int repeatGame;
			System.out.println("계임을 더 하시겠습니까? [-1입력/그외의 숫자 입력]");
			repeatGame = scanner.nextInt();
			
			if(repeatGame==-1)
			{
				continue; //해당 반복문을 재실행
			}else {
				break; //해당 반복문을 빠져나감
			}			
			
			
//			String repeatGame;
//			System.out.println("계임을 더 하시겠습니까? [yes입력]");
//			repeatGame = scanner.next();
//			
//			if(repeatGame=="yes")
//			{
//				continue; //해당 반복문을 재실행
//			}else {
//				break; //해당 반복문을 빠져나감
//			}	
		}	
		System.out.println("게임 종료됨");
	}
}

'Programming > Java' 카테고리의 다른 글

참조변수와 인스턴스의 연결  (0) 2021.09.26
상속  (0) 2021.09.26
Calendar 클래스  (0) 2021.09.23
난수 생성  (0) 2021.09.23
StringTokenizer()  (0) 2021.09.23