Archive

Java Day 8 제어문 응용문제(홀짝게임)

|

Java Day 8 제어문 응용문제(홀짝게임)


  1. 홀짝 게임

    • 제어문을 응용하여 홀짝게임을 구현해보자

    • 제시된 조건

      • 초기 게임머니 1,000원
      • 메뉴선택 1. 홀수 2. 짝수 0. 게임종료
      • 배팅금액 입력 받고 엔터키를 눌러서 홀짝게임 실행
      • 승리하면 배팅금액만큼 받고 지면 반대
      • 게임머니가 5,000원 이상 or 0원이 되면 강제종료
      • 종료 선택시 정말로 종료할건지 다시 묻기
    • 출력화면

      홀짝게임 메뉴선택 1.홀수 2.짝수 0.게임종료 (0번 선택시) 정말로 종료하시겠습니까? (y / n) (엉뚱한 메뉴 선택시) 경고 메세지 출력 (1,2번 선택시) 배팅 금액 : (입력) 승리 or 패배 메세지 출력 (반복)

  2. 순서도

    1. 멤버변수 선언 : 게임머니, 메뉴, 스위치
    2. while문 조건식에 boolean 스위치 넣고 true일동안 무한반복
    3. 메뉴 구현
    4. 0번 입력시 한번 더 묻고 while문 나가기
    5. 1,2번 이외의 번호 입력시 메뉴 재선택
    6. 1,2번 선택시 배팅금액 입력 화면으로 전환
    7. 주사위 난수 생성해서 비교
    8. 승패 확인 후 게임머니 정산
    9. 종료 조건 구현
  3. 코딩

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아이티뱅크 자바 수업 내용