以下是一个简单的 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