以下是一个简单的 Rust 猜谜游戏的示例:
use rand::seq::SliceRandom;
use std::io;

fn main() {
    println!("欢迎来到猜谜游戏!");

    // 单词列表
    let words = vec!["rust", "programming", "developer", "learning", "challenge"];

    // 从单词列表中随机选择一个单词
    let chosen_word = words.choose(&mut rand::thread_rng()).unwrap();

    // 将单词转换为字符的向量
    let mut word_chars: Vec<char> = chosen_word.chars().collect();

    // 创建一个与单词长度相等的猜测向量,并初始化为下划线
    let mut guessed_word: Vec<char> = vec!['_'; word_chars.len()];

    let mut attempts = 6; // 玩家允许的最大猜测次数

    loop {
        // 打印当前猜测状态
        println!("当前猜测: {}", guessed_word.iter().collect::<String>());
        println!("剩余尝试次数: {}", attempts);

        // 等待玩家输入猜测
        let mut guess = String::new();
        println!("请输入一个字母:");
        io::stdin().read_line(&mut guess).expect("读取行失败");

        // 处理玩家输入
        let guess_char = guess.trim().chars().next().unwrap();

        // 检查猜测是否在单词中
        if word_chars.contains(&guess_char) {
            // 更新猜测状态
            for (index, &character) in word_chars.iter().enumerate() {
                if character == guess_char {
                    guessed_word[index] = guess_char;
                }
            }
        } else {
            println!("猜错了!");
            attempts -= 1;
        }

        // 检查游戏是否结束
        if guessed_word.iter().all(|&c| c != '_') {
            println!("恭喜,你猜对了! 单词是: {}", chosen_word);
            break;
        }

        if attempts == 0 {
            println!("很遗憾,你没有猜对。正确的单词是: {}", chosen_word);
            break;
        }
    }
}

请确保在项目的 Cargo.toml 文件中添加 rand = "0.8",以便使用 rand 库来进行随机选择。

这是一个简单的猜谜游戏,你可以根据需要进行修改和扩展。


转载请注明出处:http://www.zyzy.cn/article/detail/6769/Rust