JAVA默写单词小程序

编写一个记单词默写单词两个功能的小程序

 

package com.lu.word;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class A {
    private String k;
    private String v;

}
package com.lu.word;


import java.io.FileReader;
import java.io.IOException;
import java.util.*;

public class English {
    //单词计分
    private static int scoring = 0;
    public static void main(String[] args) {

        while (true) {
            System.out.println("1.开始背单词 2.默写单词中文意思 3.退出");
            Scanner scanner = new Scanner(System.in);
            int num = 0;
            while (true) {
                try {
                    num = scanner.nextInt();
                } catch (Exception e) {
                    System.out.println("输入错误,请重新输入");
                    scanner.nextLine(); // 清除错误的输入
                    continue;
                }
                break;
            }
            switch (num) {
                case 1:
                    System.out.println("开始背单词");
                    Properties properties = new Properties();
                    try(FileReader fileReader = new FileReader("resource/work.properties");){
                        properties.load(fileReader);
                        properties.forEach((k,v)->{
                            try {
                                Thread.sleep(2000);
                                System.out.println(k+" : "+v);
                            } catch (InterruptedException e) {
                                throw new RuntimeException(e);
                            }
                        });
                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    }
                    break;
                case 2:
                    Properties properties1 = new Properties();
                    try (FileReader fileReader = new FileReader("resource/work.properties");) {
                        properties1.load(fileReader);
                        System.out.println("开始默写单词中文意思");
                        HashMap<Integer, A> map = new HashMap<>();
                        final int[] a = {1};
                        properties1.forEach((k, v) -> map.put(a[0]++, new A((String) k, (String) v)));
                        //判断生成的随机数是否在这个数组中
                        int[] arr =new int[10];
                        //随机数对象
                        Random random = new Random();
                        //生成一个1到map的长度之间的随机数
                        for (int j = 0; j <10 && j< map.size() ; j++) {
                            int i;
                            //判断生成的随机数是否在这个数组中
                            while (true){
                                i = random.nextInt(1,map.size()+1);
                                //判断生成的随机数是否在这个数组中
                                if (!WordService.contains(arr, i)) {
                                    break;
                                }
                            }
                            for (int k = 0; k < 3; k++) {
                                System.out.println("请输入单词翻译");
                                System.out.println(map.get(i).getK());
                                String next = scanner.next();
                                if (next.equals(map.get(i).getV())) {
                                    scoring += 10;
                                    System.out.println("正确");
                                    break;
                                } else {
                                    System.out.println("错误");
                                }

                            }
                            arr[j] = i;
                        }
                        System.out.println("你的得分是:"+scoring);

                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    }
                    break;
                case 3:
                    System.out.println("退出");
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入错误,请重新输入");
                    break;
            }
        }


    }
}
package com.lu.word;

public class WordService {
    /**
     * 判断数组中是否包含某个数字
     * @param arr 数组
     */
    public static boolean contains(int[] arr, int num) {
        for (int j : arr) {
            if (j == num) {
                return true;
            }
        }
        return false;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想用Python创建一个默写单词的程序,你可以使用以下代码作为基础: ```python import random def generate_word(word_list): # 从单词列表中随机选择一个单词 word = random.choice(word_list) return word def hide_word(word): # 将单词中的字母替换为横线或下划线 hidden_word = "" for char in word: if char.isalpha(): hidden_word += "_" else: hidden_word += char return hidden_word def play_game(): word_list = ["apple", "banana", "orange", "grape", "pineapple"] # 替换为你自己的单词列表 word = generate_word(word_list) hidden_word = hide_word(word) print("猜单词游戏!") print("猜测单词:", hidden_word) guesses = [] attempts = 6 while attempts > 0: guess = input("请输入一个字母或猜测整个单词:").lower() if guess == word: print("恭喜你,猜对了!") break elif guess in guesses: print("你已经猜过这个字母了,请尝试其他字母。") elif len(guess) == 1 and guess.isalpha(): guesses.append(guess) if guess in word: print("猜对了!") hidden_word = "" for char in word: if char in guesses: hidden_word += char else: hidden_word += "_" print("猜测单词:", hidden_word) else: attempts -= 1 print("猜错了,还剩下", attempts, "次机会。") else: print("无效输入,请输入一个字母或猜测整个单词。") if hidden_word == word: print("恭喜你,猜对了!") break if attempts == 0: print("很遗憾,你没有猜对。正确答案是:", word) play_game() ``` 在这个示例中,我们首先定义了一个`generate_word`函数,用于从给定的单词列表中随机选择一个单词。然后,我们定义了一个`hide_word`函数,用于将单词中的字母替换为横线或下划线,以隐藏单词的真实内容。 在`play_game`函数中,我们初始化了游戏所需的变量,并使用一个循环来接受用户的猜测。用户可以输入一个字母或尝试猜测整个单词。程序会根据猜测的结果给出相应的提示,并更新隐藏的单词显示。当玩家猜对整个单词或者没有剩余的猜测次数时,游戏结束。 你可以根据需要修改`word_list`变量中的单词列表,以适应你想要默写单词。 希望这个示例对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值