在我在這里撰寫的這段代碼中,用戶輸入他們是否愿意在硬幣翻轉游戲中選擇正面或反面。我想記錄出現正面或反面的次數,并在每次更改時輸出。經過數小時的嘗試和搜索,我無法完美地理解它,所以如果有人能讓我知道我可以使用什么,請告訴我。
import java.util.Random;
import java.util.Scanner;
public class CoinToss {
private enum Coin {
Head, Tail
}
public static void main(String[] args) {
CoinToss game = new CoinToss();
game.startGame();
}
private void startGame() {
Scanner scanner = new Scanner(System.in);
Coin guess;
while (true) {
System.out.print("Enter your guess whether the coin will be heads or tails. Type 1 for heads, 2 for tails, or 3 to quit: ");
String choice = scanner.nextLine();
if (choice.equalsIgnoreCase("3")) {
break;
} else if (choice.equalsIgnoreCase("1")) {
guess = Coin.Head;
} else if (choice.equalsIgnoreCase("2")) {
guess = Coin.Tail;
} else {
System.out.println("Please select either heads tails or quit.");
continue;
}
Coin toss = tosscoin();
if (guess == toss) {
System.out.println("You guessed correctly!");
} else {
System.out.println("You guessed incorrectly");
}
}
scanner.close();
}
private Coin tosscoin() {
Random r = new Random();
int sideup = r.nextInt(2);
if (sideup == 1) {
return Coin.Head;
} else {
return Coin.Tail;
}
}
}
uj5u.com熱心網友回復:
例如,您可以在 CoinToss 類中添加兩個欄位。像int head和int tails。在startGame()方法中用 0 初始化它們。然后,在tosscoin()方法中:
if (sideup == 1) {
heads ;
return Coin.Head;
} else {
tails ;
return Coin.Tail;
}
您可以在startGame()方法中訪問這些欄位,并使用它們做任何您想做的事情。
您也可以直接在startGame()方法中定義這兩個變數,并根據您從tosscoin()方法獲得的 Coin 型別增加它們。
uj5u.com熱心網友回復:
下面的代碼應該可以作業。每次投擲時,它會將當前值存盤在一個變數中,并在下次將其與投擲值進行比較。
import java.util.Random;
import java.util.Scanner;
public class CoinToss {
private static int headCounter;
private static int tailCounter;
private static int previousToss;
private enum Coin {
Head, Tail
}
public static void main(String[] args) {
CoinToss game = new CoinToss();
game.startGame();
}
private void startGame() {
headCounter = 0;
tailCounter = 0;
previousToss = 0;
Scanner scanner = new Scanner(System.in);
Coin guess;
while (true) {
System.out.print("Enter your guess whether the coin will be heads or tails. Type 1 for heads, 2 for tails, or 3 to quit: ");
String choice = scanner.nextLine();
if (choice.equalsIgnoreCase("3")) {
break;
} else if (choice.equalsIgnoreCase("1")) {
guess = Coin.Head;
} else if (choice.equalsIgnoreCase("2")) {
guess = Coin.Tail;
} else {
System.out.println("Please select either heads tails or quit.");
continue;
}
Coin toss = tosscoin();
if (guess == toss) {
System.out.println("You guessed correctly!");
} else {
System.out.println("You guessed incorrectly");
}
}
scanner.close();
}
private Coin tosscoin() {
Random r = new Random();
int sideup = r.nextInt(2);
Coin currentGuess;
if (sideup == 1) {
headCounter ;
currentGuess = Coin.Head;
} else {
tailCounter ;
currentGuess = Coin.Tail;
}
checkIfFlipped(sideup);
return currentGuess;
}
static void checkIfFlipped(int currentToss) {
if (currentToss != previousToss) {
if (currentToss == 0) {
System.out.println("Coin fliped from head to tail");
} else {
System.out.println("Coin fliped from tail to head");
}
}
previousToss = currentToss;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368691.html
上一篇:如何處理具有不同引數的派生類
