티스토리 뷰

import java.util.Scanner;

public class testcoding {


int[] com=new int[3];

int[] user=new int[3];

int s,b;

void getRand()// 난수 발생 메소드

{

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; // 중복이 없는 경우 저장

}

}

void input() // 입력 메소드

{

Scanner scan=new Scanner(System.in);

while(true)

{

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;

}

compare();

hint(num);

if(end())

{

System.out.print("Continue? (Y/N) : ");

String yn=scan.next();

char c=yn.charAt(0);

if(c=='Y'|| c=='y')

{

System.out.println("Restart");

getRand();

input();

}

else

{

System.out.println("Exit");

break;

}

}

}

}

void compare() //비교 메소드

{

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

}

}

}

}

void hint(int num) // 힌트 여부

{

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

}

boolean end() // 종료여부

{

if(s==3)

return true;

return false;

}

public static void main(String[] args) {

testcoding base=new testcoding(); // base는 stack에 저장됨

base.getRand();

base.input();


}


}






저번에 올린 숫자야구게임의 메소드화 버전

'Programming? > JAVA' 카테고리의 다른 글

쓰레드를 이용한 타임워치  (0) 2012.07.30
달력 출력 ver 메소드  (0) 2012.07.12
2차원 배열을 이용한 모래시게  (0) 2012.07.07
2차원 배열을 이용한 다이아몬드  (0) 2012.07.07
버블정렬  (0) 2012.07.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/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
글 보관함