Java-猜单词游戏
目录
Java 猜单词游戏
编程练习题
编写一个猜单词的游戏。随机产生一个单词,提示用户一次猜测一个字母,单词中的每个字母显示为一个星号。当用户猜测正确后,正确的字母显示出来。当用户猜出一个单词,显示猜错的次数,并且询问用户是否继续游戏猜测下一个单词。声明一个 数组 来存储单词,如下所示:
String[] words = {"..."};
运行示例
猜单词:****
请输入一个字母:a
字母 a 在单词中
猜单词:*a**
请输入一个字母:c
字母 c 不在单词中
猜单词:*a**
请输入一个字母:d
字母 d 在单词中
猜单词:da**
请输入一个字母:t
字母 t 在单词中
猜单词:dat*
请输入一个字母:e
字母 e 在单词中
单词是:date
你猜错了 1 次
是否继续游戏(Y / N):N
参考代码
import java.util.Scanner;
import java.util.Random;
public class Game {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random r = new Random();
String[] words = {"scanner", "random", "calendar", "arrays", "date"};
char game;
do {
int length = r.nextInt(words.length);
String word = words[length];
StringBuilder guess = new StringBuilder();
guess.append("*".repeat(word.length()));
int yes = 0, no = 0;
while (yes < word.length()) {
System.out.println("猜单词:" + guess);
System.out.print("请输入一个字母:");
char letter = input.next().charAt(0);
if (guess.indexOf(String.valueOf(letter)) >= 0)
System.out.println("字母 " + letter + " 在单词中");
else if (word.indexOf(letter) < 0) {
System.out.println("字母 " + letter + " 不在单词中");
no++;
}
else {
int index = word.indexOf(letter);
while (index >= 0) {
guess.setCharAt(index, letter);
yes++;
index = word.indexOf(letter, index + 1);
}
}
}
System.out.println("单词是:" + word);
System.out.println("你猜错了 " + no + " 次");
System.out.print("是否继续游戏(Y / N):");
game = input.next().charAt(0);
} while (game == 'Y');
}
}