-2

我正在创建一个包含 2 个游戏的赌博应用程序。但是我希望能够从一场比赛切换到下一场比赛。我尝试了 if(game == 1),但似乎一旦我匹配了条件,它就会退出循环并再次尝试输入不会切换到第二个游戏。然后我尝试做while,但即使我将输入设置为“2”,它仍然会开始游戏#1。关于我应该做什么的任何建议?

import java.util.Scanner;
import java.util.Random;
public class Project2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
    int min = 1;
    int max = 10;
    int colmax = 2;
    double balance = 2500;
    double bet1 = 0;
    double bet2 = 0;
    String kBet = null;

    //Call method gameChoice to allow player to choose what game they want to play.
    gameChoice();
    int game = input.nextInt();
 do { 
    System.out.println("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-BLACK JACK-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
    System.out.print("Please choose Black or Red, and a number from 1-10..(Example: Red 4): ");
    String color = input.next();
    int number = input.nextInt();
    //Seperate bets for color and number. Bet1 = color bet, bet2 = number bet
    System.out.print("Your available balance is $"+balance+". How much would you like to bet on "+color+"?");
        bet1 = input.nextInt();
        if(bet1 > balance) {
           System.out.print("You dont have enough money to bet $"+bet1+". Please enter a valid bet: $");
           bet1 = input.nextInt();
        }
        else 
        balance -= bet1;
        double profit1 = (bet1 * 2) - bet1;
    //Bet 2 for number.
    System.out.print("Your available balance is $"+balance+". How much would you like to bet on "+number+"?");
        bet2 = input.nextInt();
        if(bet2 > balance) {
           System.out.print("You dont have enough money to bet $"+bet2+". Please enter a valid bet: $");
           bet2 = input.nextInt();
        }
        else 
        balance -= bet2;
        double profit2 = (bet2 * 5) - bet2;
    //Give bet info
    System.out.println("------------------------------BET INFO------------------------------------");
    System.out.println("You just bet $"+bet1+" on "+color+" and $"+bet2+" on number "+number);
    System.out.println("Spinning............");
    System.out.println("------------------------------RESULTS-------------------------------------");

    //Generate random number, Generate random color. 
    Random rouletteNum = new Random();
        int rNum = min + rouletteNum.nextInt(max);
        int rCol = min + rouletteNum.nextInt(colmax);

    //Only generate 2 numbers between 1-2; 1 is black, 2 is red.
    if (rCol == 1) {
        System.out.println("The machine landed on Black "+rNum);
    }
    else if(rCol != 1) {
        System.out.println("The machine landed on Red "+rNum);
    }
    //All possible conditions for betting outcomes.
    if(rNum == number) {
        System.out.println("Congrats, you guessed the right number! You've won $"+profit2);
            balance += (bet2 * 5);
    }
    else if(rNum != number) {
        System.out.println("Sorry!You didnt guess the right number! You've lost $"+bet2);
    }
    if(rCol == 1 && color.equals("Black")) {
        System.out.println("Congrats, you guessed the right color! You've won $"+profit1);
            balance += bet1 * 2 - bet1;
    }
    else if(rCol == 2 && color.equals("Red")) {
        System.out.println("Congrats, you guessed the right color! You've won $"+profit1);
            balance += bet1 * 2 - bet1;
    }       
    if(rCol == 2 && color.equals("Black")) {
        System.out.println("Sorry, you didn't guess the right color. You've lost $"+bet1);
    }
    else if(rCol == 1 && color.equals("Red")) {
        System.out.println("Sorry, you didn't guess the right color. You've lost $"+bet1);
    }
    System.out.println("------------------------------------------------------------------------");
    //Call isBroke method to check if player is bankrupt.
    if(isBroke(balance) == true) {
        endGame(balance);
    }
    else {
    //If player isn't bankrupt, ask if they want to place another bet.
    System.out.println("New balance: $"+balance);
        gameChoice2();
        game = input.nextInt();
    }
 }
 while(game == 1);
 {
    do {
         int bet = 0;
         double start = 1.00;
         double crashValue = 1.00;
         int stopGame = 1;
         double cashout = 0;
         System.out.println("-------------------CRASH GAME--------------------------");
         System.out.println("Welcome to Crash!");
         System.out.print("What number would you like to cashout at?(Ex. 1.15):");
            cashout = input.nextDouble();
         System.out.print("Your balance is $"+balance+". How much would you like to bet on this round?:");
            bet = input.nextInt();
            //check if bet amount is greater then the balance.
            if(bet > balance) {
               System.out.print("You dont have enough money to bet $"+bet+". Please enter a valid bet: $");
               bet = input.nextInt();
            }
            else
         System.out.println("--------------------------------------------------------------------------");
         System.out.println("Round is beginning........."); 

         for(int i =0; i < stopGame; i++) {
      //Do while to keep the numbers generating until i == 1 (until crash)
    do {
        //Generate random number from 1-100, if the number is less than 98, print the digit (Example : 1.34)
         int crash =(int)(Math.random() * 100);
         if (crash < 98) {
             start += .01;
             System.out.printf("%.2f\n",start);
         }
         //if random number from 1-100 is greater than 98, crash the game.
         else if(crash > 98) {
                 i++;
                 crashValue = start;
                 System.out.println("----------------------------RESULTS--------------------------------");
                 System.out.print("CRASH! The game crashed at "); 
                 System.out.printf("%.2f",start);
                 System.out.println("x"); 
         }
    } 
    while(i == 0);
   }
    //Check if player cashed out before game crashed.
    if(cashout < crashValue) {
        System.out.println("Congrats! You cashed out at "+cashout+" before the game crashed. You've won $"+bet*cashout);
        balance += bet * cashout;
    }
    //Player didn't cash out in time, and lost.
    else {
        System.out.println("Sorry! The game crashed before you could cash out. You've lost $"+bet);
        balance -= bet;
    }
    System.out.println("------------------------------------------------------------------------");
    //check if player is bankrupt.
    if(isBroke(balance) == true) {
        endGame(balance);
    }
    else {
    //If they arent bankrupt, ask if they want another bet.
    System.out.println("New balance: $"+balance);
    gameChoice2();
    game = input.nextInt();
     }
}  
   while(game == 2);
}
4

1 回答 1

0

你已经使用了一个do...while循环。while这种类型的循环在评估条件之前总是至少执行一次它的主体。

于 2018-04-24T22:28:29.643 回答