編集されました。ループしていないポット値に問題があります。Java Do Whileループの問題
私は開発中の単純なギャンブルゲームで自分のループに問題があります。ゲームは私が望むすべてを、ループバックするまで実行します。私は、ポットを静的な$ 100の金額に戻すことは望ましくありません。 また、新しいダイスロールを与えていません。修正済み(Prodianに感謝)ループが元の金額に戻って戻ってきて、最後のラウンドを考慮しないようです。私は変数の配置が間違っているだけの問題だと感じていますが、私はそれらを動かそうとしました。どんな助けでも大歓迎です!
import java.util.Scanner;
import java.util.Random;
public class gamblinggame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random ran = new Random();
double bet;
double pot = 100;
int r1 = ran.nextInt(6) + 1;
int r2 = ran.nextInt(6) + 1;
int r3 = ran.nextInt(6) + 1;
System.out.println("*** Gambling Game ***");
System.out.println("Your starting pot is $100, please place a bet less than or equal to the pot.");
do {
r1 = ran.nextInt(6) + 1; // continues to re-roll dice
r2 = ran.nextInt(6) + 1;
r3 = ran.nextInt(6) + 1;
bet = scanner.nextDouble();
if (bet > pot) {
System.out.println("Invalid amount. Please place a new bet.");
continue;
}
if (bet >= 1) {
System.out.println("Your new pot is $" + (pot - bet) + ".");
System.out.println("Rolling the dice.");
System.out.println(
"You rolled " + r1 + ", " + r2 + ", " + r3 + ". The total amount rolled is " + (r1 + r2 + r3));
if (r1 == r2 || r1 == r3 || r2 == r3) {
System.out.println("You win DOUBLE your bet back!");
System.out.println("Your new pot is $" + (pot + (bet * 2)) + ".");
} else if (r1 == r2 && r1 == r3 && r2 == r3) {
System.out.println("You win TRIPLE your bet back!");
System.out.println("Your new pot is $" + (pot + (bet * 3)) + ".");
} else if (r1 + r2 + r3 >= 10) {
System.out.println("You win your bet back!");
System.out.println("Your new pot is $" + (pot) + ".");
}
System.out.println("Enter a new bet equal to or below the pot.");
}
if (bet > pot) {
System.out.println("Invalid amount. Please place a new bet.");
continue;
}
if (bet == 0) {
System.out.println("Game Over. Please play again!");
break;
}
} while (pot > 0);
}
}
あなたは決して再ロールサイコロ。 –
ループ内には 'pot = startingPot-bet;'があります。あなたが何回ベットを行ったとしても、常に出発ポットに基づいています。 –