티스토리 뷰

Programming?/JAVA

숫자야구게임

Erlka 2012. 7. 3. 23:31

import java.util.Scanner;

public class testcoding {

public static void main(String[] args) {

// 입력을 받을수 있는 기능 설정

Scanner scan=new Scanner(System.in);

//난수 저장 공간

int[] com=new int[3];

//사용자 입력 저장 공간

int[] user=new int[3];

//난수 발생 1~9사이의 수 저장(중복 없음)

int su=0;

boolean bDash=false; // 중복 여부 확인. 중복 = true/중복 아님 = false

//난수 3개 발생

for(int i=0; i<3; i++)

{

bDash=true;

while(bDash) // 중복시 계속 루프 수행

{

su=(int)(Math.random()*9)+1;//1~9사이의 난수 발생

bDash=false;

//중복 여부 확인

for(int j=0; j<i; j++)

{

if(com[j]==su) // 중복된 수가 있다면

{

// 다시 while문 수행(난수 다시 발생)

bDash=true;

break; //for문만 벗어남

}

}

}

com[i]=su; // 중복이 없는 경우 저장

}

// 사용자 입력

// 몇번만에 맞출지 모르므로 무한루프 돌림

while(true) // = for(;;) 무한루프

{

System.out.print("세자리 정수를 입력하세요(100~999) : ");

int num=scan.nextInt();

if(num<100 || num>999)

{

System.out.println("잘못된 입력입니다.");

continue;

}

//입력 받은 세자리 숫자 분해

user[0] = num/100; // 100자리 분해

user[1] = (num%100)/10; // 10자리 분해

user[2] = num%10; // 1자리 분해

/*

* ex) 235

* 235 / 100 = 2

* 235%10 = 35/10 = 3

* 235%10 = 5

*/

//사용자 입력 중복 숫자 검사

if(user[0]==user[1] || user[1]==user[2] || user[0]==user[2])

{

System.out.println("중복된 수는 입력할수 없습니다.");

continue;

}

//비교

int s=0, b=0;

for(int i=0; i<3; i++)

{

for(int j=0; j<3; j++)

{

if(com[i]==user[j])

{

if(i==j)

s++;

else

b++;

}

}

}

//힌트 출력

System.out.print("S:");

for(int i=0; i<s; i++)

{

System.out.print("○");

}

System.out.print("\nB:");

for(int i=0; i<b; i++)

{

System.out.print("○");

}

System.out.println();

System.out.printf("입력 숫자 : %d, 결과 : %d S - %d B\n",num,s,b);

if(s==3)

{

System.out.println("Game over");

break;

}

}

}


}







말그대로 숫자 야구 게임

스압의 압박이 좀 있겠지만 지난번의 숫자맞추기와 비슷한 게임.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함