두 주사위 수의 합을 맞히는 게임 제작
코인 : 20개
합을 맞추면 제시한 숫자에 따라서 배당금이 달라짐
2,12 : 제시할 수 없음
3,11 : 18배
4,10 : 12배
5,9 : 9배
6,8 : 7배
7 : 6배
배팅할 코인 수는? ---> 입력
두 주사위의 합은 ----> 입력 2,12를 입력하면 다시 입력
두 주사위의 합은 ----> ex)6
주사위 번호 출력
결과 출력
public class dice {
int number;
//주사위를 굴림
void setRandom() {
//주사위 1~6를 random
number = (int)(Math.random()*6) + 1;
}
//주사위 값 취득
int getNumber() {
return number;
}
}
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("파이팅입니다!");
}
}
}
public static void main(String[] args) {
Game game = new Game();
game.play();
}
}