Java Day 8 제어문 응용문제(홀짝게임)
09 Dec 2020 | JavaJava Day 8 제어문 응용문제(홀짝게임)
-
홀짝 게임
-
제어문을 응용하여 홀짝게임을 구현해보자
-
제시된 조건
- 초기 게임머니 1,000원
- 메뉴선택 1. 홀수 2. 짝수 0. 게임종료
- 배팅금액 입력 받고 엔터키를 눌러서 홀짝게임 실행
- 승리하면 배팅금액만큼 받고 지면 반대
- 게임머니가 5,000원 이상 or 0원이 되면 강제종료
- 종료 선택시 정말로 종료할건지 다시 묻기
-
출력화면
홀짝게임 메뉴선택 1.홀수 2.짝수 0.게임종료 (0번 선택시) 정말로 종료하시겠습니까? (y / n) (엉뚱한 메뉴 선택시) 경고 메세지 출력 (1,2번 선택시) 배팅 금액 : (입력) 승리 or 패배 메세지 출력 (반복)
-
-
순서도
- 멤버변수 선언 : 게임머니, 메뉴, 스위치
- while문 조건식에 boolean 스위치 넣고 true일동안 무한반복
- 메뉴 구현
- 0번 입력시 한번 더 묻고 while문 나가기
- 1,2번 이외의 번호 입력시 메뉴 재선택
- 1,2번 선택시 배팅금액 입력 화면으로 전환
- 주사위 난수 생성해서 비교
- 승패 확인 후 게임머니 정산
- 종료 조건 구현
-
코딩
import java.io.*;
public class OddOrEven {
public static void main(String[] ar)throws IOException{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int myMoney = 1000;
int betMoney;
int menu = -1;
boolean isStop = false;
//while loop
while(!isStop){
System.out.println("홀짝 게임 START");
System.out.println("잔액 : "+myMoney+"원");
System.out.println("메뉴를 선택하세요");
System.out.println("1. 홀수");
System.out.println("2. 짝수");
System.out.println("0. 게임종료");
System.out.print("메뉴 : ");
menu = System.in.read() - 48;
System.in.read(); System.in.read();
//메뉴 범위 설정
while(menu != 1 && menu != 2 && menu != 0){
System.out.println("잘못 누르셨습니다.");
System.out.print("메뉴 : ");
menu = System.in.read() - 48;
System.in.read(); System.in.read();
}//end if
//종료 재확인
if(menu == 0){
System.out.println("정말로 종료하시겠습니까? (y/n)");
menu = System.in.read();
System.in.read(); System.in.read();
if(menu == 'y' || menu == 'Y') {
isStop = true;
} else {
System.out.println("종료 취소");
}
continue;
}//end if
//배팅금액 입력
System.out.print("배팅 금액 : ");
betMoney = Integer.parseInt(br.readLine());
System.out.println("주사위를 던지시려면 Enter를 입력하세요");
System.in.read(); System.in.read();
//난수 생성
int dice = (int)(Math.random()*6)+1;
//홀짝 확인
System.out.println("주사위의 숫자는 : "+dice);
if((menu+dice) % 2 == 0){
System.out.println("You Win!!");
myMoney += betMoney;
if(myMoney >= 5000){
System.out.println("당신은 타짜입니다.");
break;
}//end if
} else {
System.out.println("You Lose..");
myMoney -= betMoney;
if(myMoney <= 0){
System.out.println("잔액 부족");
break;
}//end if
}//end dice if
}//end while loop
}//end main
}
참고 자료
KG아이티뱅크 자바 수업 내용