Notice
Recent Posts
Recent Comments
Link
drexqq
[Java ,자바] 랜덤숫자 맞추기 (random number game) 본문
728x90
반응형
Java를 이용해서 랜덤 숫자 맞추기 게임을 만들어보았다.
랜덤 숫자 맞추기 규칙
랜덤 숫자는 1 ~ 100 사이에 있는 하나의 수이다.
사용자는 1 ~ 100 사이의 수를 입력하여서 정해진 랜덤 숫자를 찾아야 한다.
기회는 총 10번이다.
기회를 모두 소진하거나 정답을 입력 시 replay 여부 체크
'Y' 또는 'y' 입력 시 랜덤 숫자 생성부터 다시 실행
'N' 또는 'n'이나 다른 문자 입력 시 게임 종료
재도전을 한다면 다시 랜덤 숫자를 만들어서 도전하게 된다.
코드
package main;
import java.util.Scanner;
public class practice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 메세지
String answer = null;
// 리플레이 변수
char yn;
boolean replay = false;
while (!replay) {
// 게임 시작시 코인 초기화
int coin = 10;
// 랜덤숫자 1 ~ 100 생성
System.out.println("1 ~ 100사이의 랜덤숫자를 찾아보세요!");
int rnum = ((int)(Math.random() * 100) + 1);
// 정답 변수
boolean right = false;
// 정답이 아니거나 코인이 1개 이상일때 실행
while (coin > 0 && !right) {
// 유저 숫자 입력
System.out.println("숫자를 입력해주세요.");
// 입력숫자
int num = sc.nextInt();
// 입력숫자 유효성 변수
boolean pass = false;
// 입력 숫자 유효성 체크
while (!pass) {
if (num <= 0 || num >= 100) {
System.out.println("1 ~ 100사이의 숫자를 입력해주세요 !");
num = sc.nextInt();
pass = false;
}
else {
pass = true;
// 통과시 기회 감소
coin--;
}
// 결과 메세지 선택
if (num > rnum) answer = "입력하신 숫자가 너무 큽니다.";
else if (num < rnum) answer = "입력하신 숫자가 너무 작습니다.";
else if (num == rnum) answer = "정답입니다.";
}
System.out.println(answer);
if (num == rnum) {
//정답시 바로 탈출
right = true;
}
else {
System.out.println(coin+"회 남았습니다.");
right = false;
}
}
// 재도전 여부 체크
System.out.println("다시 하시겠습니까 ? Y(y) / N(n)");
yn = sc.next().charAt(0);
if (yn == 'Y' || yn == 'y') {
replay = false;
}
else {
replay = true;
}
}
}
}
728x90
반응형
'공부노트 > 개인공부!' 카테고리의 다른 글
[Java, 자바] 성적 통계프로그램 (0) | 2020.05.26 |
---|---|
[Java, 자바] 로또숫자 생성기(lotto) (0) | 2020.05.24 |
[Java, 자바] 숫자야구(baseball game) (0) | 2020.05.24 |
[Java, 자바] 사칙연산 계산기(Calculator) (0) | 2020.05.21 |
[Java, 자바] 별 출력하기 (0) | 2020.05.21 |
Comments