본문 바로가기

JAVA/수업 Test

숫자 야구 게임(강사님방법)

문제:

BaseBall

package kosta.HW.test;

import java.util.Arrays;

public class Baseball {
//난수 생성
	int hidden[];;

	public Baseball() {
		hidden=new int[3];
		
		hidden[0]=(int)(Math.random()*9)+1;
		do {
			hidden[1]=(int)(Math.random()*9)+1;
		}while(hidden[0]==hidden[1]);
		do {
			hidden[2]=(int)(Math.random()*9)+1;
		}while(hidden[2]==hidden[1]||hidden[2]==hidden[0]);
		System.out.println(Arrays.toString(hidden));
	}
	
//스트라이크 볼 판정
	public int countStrike(int[] input) {
		int strike=0;
		for (int i = 0; i < input.length; i++) {
			if(hidden[i]==input[i]) strike++;
		}
		return strike;
	}
	public int countBall(int[] input) {
		int ball=0;
		for (int i = 0; i < input.length; i++) {
			if(hidden[i]==input[(i+1)%3]) {
				ball++;
			}else if(hidden[i]==input[(i+2)%3]) {
				ball++;
			}
		}
		return ball;
	}
	
}

BaseBallMain

package kosta.HW.test;

import java.util.Scanner;

public class BaseballMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Baseball b=new Baseball();
		int strike, ball, count=0;
		Scanner scan=new Scanner(System.in);
		int[] arr=new int[3];
		
		do {
			System.out.println("게임 시작");
			System.out.println("숫자 입력:");
			arr[0]=scan.nextInt();
			arr[1]=scan.nextInt();
			arr[2]=scan.nextInt();
			strike=b.countStrike(arr);
			ball=b.countBall(arr);
			System.out.println(strike+"S"+ball+"B");
			count++;
		}while(strike!=3);
		
		System.out.println("시도 횟수:"+count);
	}

}

 

'JAVA > 수업 Test' 카테고리의 다른 글

랜덤 숫자 up down 게임  (0) 2021.02.01
갤러그_재귀함수 이용  (0) 2021.02.01
숫자 야구 게임(내방법)  (0) 2021.02.01