최대 1 분 소요

import java.awt.Window.Type;
import java.util.Random;
import java.util.Scanner;

public class BaseballTest {
	public static void main(String[] args) {
		
		int[] ball = {0,1,2,3,4,5,6,7,8,9};
		Random random = new Random();
		for (int i=0; i<1000; i++) {
			int r = random.nextInt(9)+1;
			int temp = ball[0];
			ball[0] = ball[r];
			ball[r] = temp;
		}
		System.out.print("레벨을 입력하세요 :");
		Scanner sc = new Scanner(System.in);
		int level = sc.nextInt();
		
		System.out.print("cpu: ");
		for(int i=0; i<level; i++) {
			System.out.print(ball[i]);
		};
		System.out.println();
		
		//키보드 버퍼를 비운다.
		sc.nextLine();
		int count =0;
		long start = System.currentTimeMillis();      // 게임 시작 시간
		// 맞출때까지 반복한다.
		while(true) {
			System.out.println("user : ");
			String str = sc.nextLine();
			count++;
			//스트라이크와 볼의 개수를 센다
			//스트라이크와 볼의 개수는 반복마다 다시 계산해야 하므로 반복문 안에서 초기화 시켜야한다
			int s=0, b=0;
			for(int i=0; i<level; i++) {
				//스트라이크의 개수
				//strt.chartAt()는 문자열임('1'). 문자열 숫자에서 48 또는 '0' 을 빼줘야함
				if(ball[i] == str.charAt(i)-48) {
					s++;
				}
				//indexOf(): 문자열에서 괄호안의 문자나 문자열이 최초로 나타나는 위치를 얻어온다.
				//없으면 -1을 리턴한다. 문자열에 특정한 문자 또는 문자열이 포함되어 있는가를 알 수 있다.
				//숫자에 ""을 더해주면 문자열이됨
				if(str.indexOf(ball[i]+"") >= 0) {
					b++;
				}
			}
			//맞췄으면 반복문을 탈출한다.
			if(s==level) {
				break;
			}
			System.out.println(s+" 스트라이크 "+(b-s) +" 볼");
		}
		long end = System.currentTimeMillis();        //게임 종료 시간
		System.out.println((end-start)/1000.+"초 걸려서"+count+"번 만에 맞췄습니다!");
	}
}


댓글남기기