Java版的刽子手游戏猜错了
我有一个关于刽子手游戏的问题,我正试图用java完成这个游戏,只是为了我自己的学习。我的问题是,目前在我的代码中,无论每次猜测是对是错,尝试的次数总是倒数计时。所以基本上你只有10次去找出单词,然后游戏结束 我想要的是,如果猜测是正确的,那么尝试的次数将保持为当前的次数,只有当我猜错的时候,它才会倒计时1 我想知道如何实现这一点,因为我正在努力转换代码来实现这一点: 以下是全部代码:Java版的刽子手游戏猜错了,java,Java,我有一个关于刽子手游戏的问题,我正试图用java完成这个游戏,只是为了我自己的学习。我的问题是,目前在我的代码中,无论每次猜测是对是错,尝试的次数总是倒数计时。所以基本上你只有10次去找出单词,然后游戏结束 我想要的是,如果猜测是正确的,那么尝试的次数将保持为当前的次数,只有当我猜错的时候,它才会倒计时1 我想知道如何实现这一点,因为我正在努力转换代码来实现这一点: 以下是全部代码: import java.util.Random; import java.util.Scanner; publ
import java.util.Random;
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
String[] movieList = {"The Simpsons Movie", "Batman Begins", "Terminator"};
boolean weArePlaying = true;
while (weArePlaying) {
System.out.println("Welcome to Guess The Movie Game");
char[] randomWordToGuess = movieList[random.nextInt(movieList.length)].toLowerCase().toCharArray();
int wordLength = randomWordToGuess.length;
char[] playerGuess = new char[wordLength];
for (int i = 0; i < playerGuess.length; i++) {
playerGuess[i] = '_';
}
for (int i = 0; i < randomWordToGuess.length; i++) {
if (randomWordToGuess[i] == ' ') {
playerGuess[i] = ' ';
}
}
boolean wordCompleted = false;
int attempts = 10;
while (!wordCompleted && attempts != 0) {
System.out.println("Current guess: ");
printArray(playerGuess);
System.out.println("Number of attempts left: " + attempts);
System.out.println("Enter a letter");
char input = scanner.nextLine().charAt(0);
attempts--;
if (input == '-') {
weArePlaying = false;
wordCompleted = true;
}
else {
for (int i = 0; i < randomWordToGuess.length; i++) {
if (randomWordToGuess[i] == input) {
playerGuess[i] = input;
}
}
if (isTheWordCompleted(playerGuess)) {
wordCompleted = true;
System.out.println("You Won!!!");
System.out.println("Do you want to play again? (yes/no)");
}
}
}
if (!wordCompleted) {
System.out.println("You ran out of movieList. Game Over");
System.out.println("Do you want to play again? (yes/no)");
String anotherGame = scanner.nextLine();
if (anotherGame.equals("no")) {
weArePlaying = false;
} else if (anotherGame.equals("yes")) {
weArePlaying = true;
} else {
System.out.println("Do you want to play again? (yes/no)");
}
}
}
System.out.println("Game Over");
}
public static void printArray(char[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
public static boolean isTheWordCompleted(char[] array) {
for (int i = 0; i < array.length; i++) {
if (array[i] == '_') {
return false;
}
}
return true;
}
}
import java.util.Random;
导入java.util.Scanner;
公开课游戏{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
随机=新随机();
String[]movieList={“辛普森一家的电影”,“蝙蝠侠开始”,“终结者”};
布尔值weArePlaying=true;
while(穿戴式播放){
System.out.println(“欢迎猜电影游戏”);
char[]randomWordToGuess=movieList[random.nextInt(movieList.length)].toLowerCase().toCharArray();
int wordLength=randomWordToGuess.length;
char[]playerGuess=新字符[wordLength];
for(int i=0;i
每当有输入时,您都在减少尝试计数:
char input = scanner.nextLine().charAt(0);
attempts--; //remove this line from here
修改检查用户输入的部件,如下所示:
Boolean flag = false;
for (int i = 0; i < randomWordToGuess.length; i++) {
if (randomWordToGuess[i] == input) {
playerGuess[i] = input;
flag = true; //user input is correct
break;
}
}
if (!flag){ //user input is wrong
attempt--;
}
Boolean标志=false;
for(int i=0;i
仅放置尝试--代码>如果猜测不正确。