随机产生一个单词,提示用户每次猜一个字母。单词中的每个字母以星号显示。当用户猜对一个字母时,显示实际字母。当用户完成一个单词时,显示猜错的次数,同时询问用户是否继续下一单词。单词存储使用数组形式,如:String[] words = {“write”,”that”,…};
时间: 2024-03-03 09:53:35 浏览: 21
好的,以下是一个Java程序,可以实现你的需求:
```java
import java.util.Scanner;
public class WordGuessingGame {
private static final String[] WORDS = {"java", "python", "ruby", "javascript", "php"};
private static final int MAX_TRIES = 10;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Welcome to Word Guessing Game!");
boolean playAgain = true;
while (playAgain) {
// 随机选择一个单词
String word = WORDS[(int)(Math.random() * WORDS.length)];
int wordLength = word.length();
StringBuilder hiddenWord = new StringBuilder();
for (int i = 0; i < wordLength; i++) {
hiddenWord.append("*");
}
int wrongGuesses = 0;
boolean wordGuessed = false;
while (!wordGuessed && wrongGuesses < MAX_TRIES) {
System.out.println("Guess a letter (you have " + (MAX_TRIES - wrongGuesses) + " tries left):");
char guess = scanner.nextLine().charAt(0);
boolean letterGuessed = false;
for (int i = 0; i < wordLength; i++) {
if (word.charAt(i) == guess) {
hiddenWord.setCharAt(i, guess);
letterGuessed = true;
}
}
if (letterGuessed) {
System.out.println("Correct!");
} else {
System.out.println("Incorrect!");
wrongGuesses++;
}
System.out.println(hiddenWord.toString());
if (hiddenWord.indexOf("*") == -1) {
wordGuessed = true;
System.out.println("Congratulations! You guessed the word!");
}
}
if (!wordGuessed) {
System.out.println("Sorry, you ran out of guesses. The word was " + word);
}
System.out.println("Do you want to play again? (yes/no)");
String answer = scanner.nextLine();
playAgain = answer.equalsIgnoreCase("yes");
}
System.out.println("Thanks for playing!");
}
}
```
在上面的代码中,我们首先定义了一个名为WORDS的字符串数组,其中包含了我们需要猜测的单词。然后,我们使用Math.random()方法来随机选择一个单词。
在每一轮游戏中,我们使用StringBuilder类来创建一个名为hiddenWord的字符串,该字符串使用星号来代替单词中的每个字母。然后,我们让用户猜测一个字母,并将其与单词中的每个字母进行比较。如果用户猜对了一个字母,则将hiddenWord中相应的星号替换为实际字母。如果用户猜错了一个字母,则将wrongGuesses加1。在每次猜测后,我们都会将hiddenWord输出到控制台上,以便用户了解自己的猜测进展情况。
如果用户猜对了所有的字母,则将wordGuessed设置为true,并输出“Congratulations! You guessed the word!”的消息。否则,如果用户猜错了10次,则将wordGuessed设置为false,并输出“Sorry, you ran out of guesses. The word was xxx”的消息。
在每轮游戏结束后,我们询问用户是否要继续下一轮。如果用户输入“yes”,则playAgain变量将被设置为true,程序将开始下一轮游戏。否则,playAgain将被设置为false,程序将退出。
希望这可以回答你的问题!