본문 바로가기
자바 프로그래밍/코드

경마 배팅 게임

by 구리Guri 2020. 2. 11.

3마리의 말들이 각자 갖고 있는 기본능력치에 난수로 만들어진 각자의 컨디션상태를 더하여 오늘의 경기력을 만들었다.

승률이 높은 말은 배팅하였을때 배당금이 낮고, 승률이 낮은 말은 배팅하였을때 배당금이 높게 설정하였다.

 

 

import java.util.Scanner;

//경마 배팅 게임

public class Quiz_02 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int menu=0; //메뉴
		int money=0; //충전하려는 금액
		int account=0; //잔액
		int choose_horse=0; //배팅하려는 말 선택기
		int betting=0; // 배팅금액
		int horse_a; //1번마
		int horse_a_basicstat=200; //1번마 기본능력치
		int horse_b; //2번마
		int horse_b_basicstat=150; //2번마 기본능력치
		int horse_c; //3번마
		int horse_c_basicstat=100; //3번마 기본능력치
		int random1; //1번마의 오늘의 컨디션 상태
		int random2; //2번마의 오늘의 컨디션 상태
		int random3; //3번마의 오늘의 컨디션 상태
		int profit=0; //배당금
		int random_max=300; //컨디션 최상
		int random_min=0;   //컨디션 최하
		
		
		//경마게임 시작
		while(true) {
			
			//메뉴 선택 시작
			while(true) {
				try { //메뉴 입력
					System.out.println("=====================");
					System.out.println("경마게임에 오신 것을 환영합니다.");
					System.out.println("1. 게임 시작");
					System.out.println("2. 잔액 충전");
					System.out.println("3. 잔액 조회");
					System.out.println("4. 종료");
					System.out.print(">> ");

					menu=Integer.parseInt(sc.nextLine());

					if(!(menu==1)&&!(menu==2)&&!(menu==3)&&!(menu==4)) {
						System.out.println("메뉴 입력범위를 벗어났습니다.");
						continue;
					}

				}catch(Exception e){ //메뉴 입력 예외처리
					System.out.println("숫자를 입력해주세요.");
					continue;
				}
				break;
			}
			//메뉴 선택 종료
			
			
			//메뉴별 기능 시작
			switch(menu) {
			//1번메뉴 게임시작
			case 1:
				//잔액이 0원인 경우, 메뉴로 돌아가기
				if(account==0) {
					System.out.println("잔액이 0원입니다. 잔액을 충전해주세요.");
					break;
				}

				//배팅할 말 선택
				while(true) {
					try {
						System.out.println("몇번 말에 배팅하시겠습니까?");
						System.out.println("1번마 : 이전 대회 우승마 - 기본 능력치 300 (우승시 배팅금액의 10% 지급)");
						System.out.println("2번마 : 이번 대회 다크호스 - 기본 능력치 200(우승시 배팅금액의 50% 지급)");
						System.out.println("3번마 : 만년 꼴찌 - 기본 능력치 100 (우승시 배팅금액의 200% 지급)");

						System.out.print("배팅할 말 번호 : ");
						choose_horse=Integer.parseInt(sc.nextLine());
						if(!(choose_horse==1)&&!(choose_horse==2)&&!(choose_horse==3)) {
							System.out.println("1~3번마 중 입력해주세요.");
							continue;
						}
						System.out.println();
						System.out.println(choose_horse+"번마를 선택하셨습니다.");
					}catch(Exception e) {
						System.out.println("입력값이 숫자가 아닙니다.");
						continue;
					}
					break;
				}
				//배팅할 말 종료


				//배팅금액 입력
				while(true) {
					try {
						System.out.print("얼마를 배팅하겠습니까? ");
						betting=Integer.parseInt(sc.nextLine());
						if(betting>account) {
							System.out.println("잔액보다 배팅금액이 커서, 배팅이 불가능합니다.");
							continue;
						}
					}catch(Exception e){
						System.out.println("입력값이 숫자가 아닙니다.");	
						continue;
					}
					break;
				}
				//배팅금액 입력 종료
				
				//말들의 컨디션 생성(난수)
				random1=(int)(Math.random()*(random_max-random_min+1)+random_min);
				random2=(int)(Math.random()*(random_max-random_min+1)+random_min);
				random3=(int)(Math.random()*(random_max-random_min+1)+random_min);
				
				//오늘 말의 경기력 = 말의 기본능력치+컨디션
				horse_a = horse_a_basicstat + random1;
				horse_b = horse_b_basicstat + random2;
				horse_c = horse_c_basicstat + random3;
				
				//경기결과 출력
				System.out.println("======경기 결과========");
				System.out.println("1번마 경기력 = " + horse_a);
				System.out.println("2번마 경기력 = " + horse_b);
				System.out.println("3번마 경기력 = " + horse_c);
				System.out.println("====================");
				
				//1번말 배팅하여 
				if(choose_horse==1) {
					//1번이 우승하였을 경우
					if(horse_a>horse_b&&horse_a>horse_c) {
						System.out.println("1번마가 우승하였습니다.");
						System.out.println("배팅금액 : " + betting);
						profit=betting/100*10;
						System.out.println("배당금 : " + profit); 
						account+=(betting+profit);

					}else { //1번이 우승하지 못하였을 경우
						account-=betting;
						System.out.println("1번말이 우승하지 못했습니다.");
						System.out.println(betting+"원을 잃었습니다.");
					}
				}
				
				//2번말 배팅하여 
				if(choose_horse==2) {
					//2번이 우승하였을 경우
					if(horse_b>horse_a&&horse_b>horse_c) {
						System.out.println("2번마가 우승하였습니다.");
						System.out.println("배팅금액 : " + betting);
						profit=betting/100*50;
						System.out.println("배당금 : " + profit);
						account+=(betting+profit);

					}else {//2번이 우승하지 못하였을 경우
						account-=betting;
						System.out.println("2번말이 우승하지 못했습니다.");
						System.out.println(betting+"원을 잃었습니다.");
					}
				}
				
				//3번말 배팅하여 
				if(choose_horse==3) {
					//3번이 우승하였을 경우
					if(horse_c>horse_a&&horse_c>horse_b) {
						System.out.println("3번마가 우승하였습니다.");
						System.out.println("배팅금액 : " + betting);
						profit=betting/100*200;
						System.out.println("배당금 : " + profit);
						account+=(betting+profit);

					}else {//3번이 우승하지 못하였을 경우
						account-=betting;
						System.out.println("3번말이 우승하지 못했습니다.");
						System.out.println(betting+"원을 잃었습니다.");
					}
				}

				break;
				
			//1번메뉴 게임종료
				
			//2번메뉴 잔액충전 시작
			case 2:
				//충전금액 입력
				while(true) {
					try {
						System.out.println("얼마를 충전하시겠습니까?");
						money=Integer.parseInt(sc.nextLine());
						System.out.println(money+"원이 충전되었습니다.");
						account+=money;
					}catch(Exception e) {
						System.out.println("입력값이 숫자가 아닙니다.");
					}
					break;
				}
				break;
				
			//2번메뉴 잔액충전 종료
				
			//3번메뉴 잔액조회 시작
			case 3:
				System.out.println("현재 잔액은 " + account +"원입니다.");

				break;
			//3번메뉴 잔액조회 종료
				
			//4번메뉴 게임종료기능 시작
			case 4:
				System.out.println("경마게임을 종료합니다.");
				System.out.println("===============");
				System.exit(0);
			//4번메뉴 게임종료기능 종료
			}
			//메뉴별 기능 종료
		}
		//경마게임 종료

	}
}

'자바 프로그래밍 > 코드' 카테고리의 다른 글

배열참조변수  (0) 2020.02.12
Baskin Robbins 31 Game  (0) 2020.02.11
경마 배팅 게임  (0) 2020.02.11
UP & Down Game  (0) 2020.02.11
가위바위보 게임-Math.random()을 이용  (0) 2020.02.11
동전 앞뒤 맞추기 게임-Math.random()을 이용  (0) 2020.02.11

댓글0