4.侩子手游戏 版本1: 随机产生一个单词,提示用户每次猜一个字母。单词中的每个字母以星号显示。当用户猜对一个字母时,显示实际字母。当用户完成一个单词时,显示猜错的次数,同时询问用户是否继续下一单词。单词存储使用数组形式,如:String[] w
时间: 2024-03-15 20:45:19 浏览: 13
好的,这是一个关于侩子手游戏的题目,下面是一个简单的实现过程,供参考:
```java
import java.util.Scanner;
import java.util.Random;
public class HangmanGame {
public static void main(String[] args) {
String[] words = {"apple", "banana", "orange", "peach", "grape"}; // 单词数组
Scanner scanner = new Scanner(System.in);
Random random = new Random();
boolean playAgain = true;
while (playAgain) {
// 随机选择一个单词
String word = words[random.nextInt(words.length)];
int wrongGuesses = 0;
boolean wordGuessed = false;
StringBuilder wordToGuess = new StringBuilder(word.length());
for (int i = 0; i < word.length(); i++) {
wordToGuess.append("*");
}
// 开始猜单词
while (!wordGuessed) {
System.out.println("Guess a letter:");
char guess = scanner.nextLine().toLowerCase().charAt(0);
boolean correctGuess = false;
for (int i = 0; i < word.length(); i++) {
if (word.charAt(i) == guess) {
wordToGuess.setCharAt(i, guess);
correctGuess = true;
}
}
if (!correctGuess) {
wrongGuesses++;
}
System.out.println(wordToGuess.toString());
if (wordToGuess.indexOf("*") < 0) {
wordGuessed = true;
}
}
// 显示结果
System.out.println("You guessed the word with " + wrongGuesses + " wrong guesses.");
System.out.println("Do you want to play again? (y/n)");
playAgain = scanner.nextLine().toLowerCase().startsWith("y");
}
}
}
```
这个程序首先定义了一个单词数组,然后使用随机数生成器来随机选择一个单词。在用户猜测单词的过程中,程序使用 StringBuilder 来创建一个和单词长度相等的星号字符串,每次用户猜对一个字母时,程序会把这个字母替换掉星号字符串中对应的位置。如果用户猜错了,程序会增加错误次数。当用户猜对了所有字母,程序会显示猜错的次数,并询问用户是否要继续下一轮游戏。