JAVA_dice batting game(class)

박예린·2022년 12월 27일
0

Java

목록 보기
20/23

두 주사위 수의 합을 맞히는 게임 제작
코인 : 20개
합을 맞추면 제시한 숫자에 따라서 배당금이 달라짐

2,12 : 제시할 수 없음
3,11 : 18배
4,10 : 12배
5,9 : 9배
6,8 : 7배
7 : 6배

배팅할 코인 수는? ---> 입력
두 주사위의 합은 ----> 입력 2,12를 입력하면 다시 입력
두 주사위의 합은 ----> ex)6
주사위 번호 출력

결과 출력

dice class

public class dice {
	
	int number;
	
	//주사위를 굴림
	void setRandom() {
		//주사위 1~6를 random 
		number = (int)(Math.random()*6) + 1;	
	}
	
	//주사위 값 취득
	int getNumber() {
		return number;
	}

}

Game class

public class Game {
Scanner sc = new Scanner(System.in);
	
	int coin = 20; //갖고 있는 코인 갯수
	int batting; //배팅할 금액 변수
	int userNumber; //user가 예측하는 주사위의 합계 변수
	
	//Dice 선언
	dice Dice[] = new dice[2];  // Dice1, Dice2

	//함수 이름 : init
	//목적 : 초기화
	void init() {
		for (int i = 0; i < Dice.length; i++) {
			Dice[i] = new dice(); //Dice 객체 선언
			Dice[i].setRandom(); //random
			
			System.out.println("주사위" + i + ":" + Dice[i].getNumber());
		}		
	}	
	
	//함수 이름 : userInput
	//목적 : user input(배팅할 금액)
	void userInput() {
		// 배팅급액
		System.out.print("금액 = ");
		batting = sc.nextInt(); //user input
		
		coin = coin - batting; //갖고있는 코인에서 배팅한 금액 뻼
		
		// 유저의 주사위 숫자
		while(true) {
			System.out.print("주사위의 합 = ");
			userNumber = sc.nextInt(); //user가 예상하는 두개의 주사위 합 input
			
			if(userNumber != 2 && userNumber != 12) { //user가 합의 수를 2,12를 적었으면 
				break; //if문 탈출
			}
			
			System.out.println("다른 숫자를 입력해 주십시오"); //다시 입력하게 함
		}
	}	
	
	//함수 이름 : finding
	//목적 : 두 주사위의 합 배팅 계산
	void finding() {
		
		//random dice number -> Dice배열에 저장
		int dice1 = Dice[0].getNumber();
		int dice2 = Dice[1].getNumber();
		
		//두 주사위의 합
		int diceSum = dice1 + dice2;
		
		//만약 user가 예상한 number와 diceSum이 갖다면
		if(userNumber == diceSum) {
			if(diceSum == 3 || diceSum == 11) {
				batting = batting * 18;
			}
			else if(diceSum == 4 || diceSum == 10) {
				batting = batting * 12;
			}
			else if(diceSum == 5 || diceSum == 9) {
				batting = batting * 9;
			}
			else if(diceSum == 6 || diceSum == 8) {
				batting = batting * 7;
			}
			else if(diceSum == 7) {
				batting = batting * 6;
			}
			
			System.out.println("축하합니다!!!");
			coin = coin + batting;
			
		//user 예상이 틀렸다면 실패 print문 호출
		}else {
			System.out.println("아쉽습니다ㅜㅜ 다음엔 맞출거에요!");
		}		
	}
	
	//함수 이름 : result
	//목적 : user에게 보여주는 결과 print문
	void result() {
		System.out.println("주사위1:" + Dice[0].getNumber());
		System.out.println("주사위2:" + Dice[1].getNumber());
				
		System.out.println("합계:" + (Dice[0].getNumber() + Dice[1].getNumber()));
		System.out.println("당신이 입력 수:" + userNumber);
		System.out.println("현재금액:" + coin);		
	}
	
	//함수 이름 : play
	//목적 : 위 함수들을 한곳에 합친 함수 집합체
	void play() {
		
		while(true) {
			init();
			userInput();
			finding();
			result();
			
			//다시 할것인지 묻기
			System.out.print("replay(y/n)? = ");
			String replay = sc.next();
			
			if(replay.equals("n")) {
				System.out.println("안녕히 가십시오");
				break;
			}
			//y 선택시 보이는 print문
			System.out.println("파이팅입니다!");
		}
	}
}

main class

public static void main(String[] args) {
		Game game = new Game();		
		game.play();

	}

}
profile
개발자를 꿈꾸는 귀여운 나

0개의 댓글