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');
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值