숫자 맞추기 게임이란? 컴퓨터가 임의의 숫자를 생성하고, 그 숫자를 플레이어가 맞추는 게임으로써, 이제 시작하는 자바 어린이들이 꼭 거치게 되면서 만들어보는 자바의 정석과 같은 게임이다. 생성되는 난수 생성을 최솟값과 최댓값을 주어, 난수의 범위 조절이 가능하며, 총 몇 번 호출이 되었는지도 체크가 가능하다.
1. 업, 다운 숫자 맞추기 게임
메인 함수 안에 복사 & 붙여 넣기 하시면 됩니다. 최솟값과 최댓값을 변경해서 난이도를 조절해보세요. WHILE 절을 어떻게 빠져나오는지 BREAKE구문을 살펴보세요. 랜덤 한 함수를 어떻게 가져오는지 한번 살펴보세요.
String sGameName = " 자바 랜덤 숫자 맞추기 게임";
String[] asMungu = { " 더욱 더 작은 수입니다.", " 더욱 더 큰 수입니다." , " 맞췄습니다." };
// { " down", " up" ," bing go"};
String sTempInner = null; //결과문구
boolean bLastLog = false;
boolean bStop = false;
int iTotalCnt = 0; // 시도횟수
int iMin = 1; // 최소
int iMax = 20;// 최대
int iRrandomNum = ( int ) ( Math.random() * ( iMax ) );
if( iRrandomNum < iMin ) iRrandomNum = iMin; //임의의 숫자
int iInputNum = 0; // 입력된 숫자
sTempInner = ( iMin - 1 ) + asMungu[ 1 ]; //첫 번째 힌트
java.util.Scanner sUserIn = new java.util.Scanner( System.in );
try {
System.out.println( iMin + "~" + iMax + sGameName ); // 제목
//맞출때까지
while( ! bStop ) { System.out.print( sTempInner + " 숫자를 입력하세요."); iTotalCnt ++;
iInputNum = sUserIn.nextInt();
if( iInputNum > iRrandomNum ) { sTempInner = iInputNum + asMungu[ 0 ] ;
}else if( iInputNum < iRrandomNum ) { sTempInner = iInputNum + asMungu[ 1 ] ;
}else { sTempInner = iInputNum + asMungu[ 2 ] ;
bStop = true; break;
}
}
System.out.println( sTempInner +" 총"+ iTotalCnt +"번 시도하였습니다."); //결과
if( iTotalCnt <= 10 && bLastLog ) {
System.out.println("천재");
}
}catch (Exception e) {
e.printStackTrace();
}finally {
try { if( sUserIn != null ) { sUserIn.close(); }}catch (Exception ee) { }
asMungu=null; sTempInner=null; sUserIn=null;
}
//1~20 자바 랜덤 숫자 맞추기 게임
//0 더욱 더 큰 수입니다. 숫자를 입력하세요.10
//10 더욱 더 큰 수입니다. 숫자를 입력하세요.15
//15 맞췄습니다. 총2번 시도하였습니다.
2. 랜덤 숫자 맞추기 게임
또 다른 버전입니다. 이용자의 입력을 받아내는 스캐너, 랜덤 한 숫자를 받아오는 매스. 랜덤 , 범위를 지정하는 최솟값과 최댓값의 적용, 무한으로 반복하는 WHILE 절을 활용하면 쉽게 게임을 만들 수 있습니다.
String sGameName = " 자바 랜덤 숫자 맞추기 게임";
int iTotalCnt = 0; // 시도횟수
int iMin = 1; // 최소
int iMax = 20;// 최대
int iRandomNum = ( int ) ( Math.random() * ( iMax ) );
if( iRandomNum < iMin ) iRandomNum = iMin; //임의의 숫자
int iInputNum = 0; // 입력된 숫자
java.util.Scanner sUserIn = new java.util.Scanner( System.in );
System.out.println(sGameName);
while (true) {
System.out.println( iMin+" 부터 "+iMax+" 사이의 정수를 입력해주세요. ");
iInputNum = sUserIn.nextInt(); iTotalCnt++;
if ( iRandomNum < iInputNum ){
System.out.println(" 더 작은 수입니다.");
}else if (iRandomNum > iInputNum) {
System.out.println(" 더 큰 수입니다.");
}else {
System.out.println(" 정답입니다."+" 총 "+iTotalCnt+" 시도");
break;
}
if( iTotalCnt >= 500 ) { //횟수제한
System.out.println(" 실패입니다."+" 총 "+iTotalCnt+" 시도 정답="+ iRandomNum );
break;
}
}
if( sUserIn != null ) sUserIn.close();
마치면서 복사가 안되거나 불편하시면 댓글 달아주세요. 바로 수정하겠습니다.
'JAVA' 카테고리의 다른 글
자바 자동업데이트 끄기 ,중지 방법 (1) | 2021.09.12 |
---|---|
자바 오류코드 1603 JAVA 업데이트에 실패하였습니다. 해결 방법 (2) | 2021.09.11 |
자바의 교과서라는 자바 디컴파일러 JD-GUI를 사용 해 보자 (7) | 2021.09.07 |
간단한 DB접속 테스트 (in java, jsp) (1) | 2021.09.05 |
needs unchecked conversion to conform 워닝 무시하기 (1) | 2021.09.05 |
댓글