游戏说明
游戏说明
游戏运行逻辑如下:
- 随机生成一个1-100的数字作为神秘数字,并提示玩家进行猜测。
- 如果玩家猜测的数字小于神秘数字,则提示用户“猜测的数字太小了”。
- 如果玩家猜测的数字大于神秘数字,则提示用户“猜测的数字太大了”。
- 让玩家不断进行猜测,直到最终猜出神秘数字,游戏结束。
游戏效果展示
游戏效果展示

游戏代码
游戏代码
游戏完整代码如下:
use rand::Rng;
use std::io;
use std::cmp::Ordering;
fn main() {
println!("欢迎来到猜数游戏!");
//1、生成神秘数字
let secret_number = rand::thread_rng().gen_range(1, 101);
println!("神秘数字已经生成!");
loop {
//2、让用户进行猜测
println!("请猜测:>");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("无法读取行");
//3、将用户输入的数字字符串转化为整型
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("请您输入一个合法的整数!");
continue;
}
};
//4、将用户猜测的数与神秘数字进行比较
match guess.cmp(&secret_number) {
Ordering::Less => println!("您猜测的数字太小了"),
Ordering::Greater => println!("您猜测的数字太大了"),
Ordering::Equal => {
println!("恭喜您猜对了, 神秘数字就是{}!", secret_number);
break;
}
}
}
}
游戏代码详解
下面对猜数字游戏中所用到的Rust语法和包(crate)进行讲解。
生成神秘数字
rand包
- Rust团队没有把随机数字生成功能内置到标准库中,而是选择将它作为rand包(rand crate)提供给用户。
- Rust中的包(crate)代表了一系列源代码文件的集合,我们当前正在构建的项目是一个用于生成可执行程序的二进制包(binary crate),而我们引用的rand包则是一个用于复用功能的库包(library crate)。
- rand包中有一个名为Rng的trait,它定义了随机数生成器需要实现的方法集合,比如Rng中的gen_range方法可以根据指定的范围来生成随机数。
在rand包中有一个名为thread_rng的方法,该方法会返回一个特定的随机数生成器,通过调用该随机数生成器的gen_range方法即可在指定范围内生成随机数。如下:
use rand::Rng;
fn main() {
let secret_number = rand::thread_rng().gen_range(

本文详细解释了如何使用Rust语言编写一个猜数字游戏,涉及随机数生成、用户输入处理、比较和错误处理,以及Cargo包管理和Rust的特性如trait和match表达式。
最低0.47元/天 解锁文章
1411

被折叠的 条评论
为什么被折叠?



