Rust从入门到实战系列十一:编写猜猜看游戏

准备一个新项目
要创建一个新项目,进入第一章中创建的 projects 目录,使用 Cargo 新建一个项目,如下:

$ cd guessing_game

第一个命令,cargo new,它获取项目的名称(guessing_game)作为第一个参数。第二个命令进入到新创建的项目目录。
看看生成的 Cargo.toml 文件:
文件名: Cargo.toml

name = "guessing_game"
version = "0.1.0"
edition = "2021"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

正如第一章那样,cargo new 生成了一个 ”Hello, world!” 程序。查看 src∕main.rs 文件:文件名: src∕main.rs

println!("Hello, world!");
}

现在使用 cargo run 命令,一步完成 ”Hello, world!” 程序的编译和运行:

Compiling guessing_game v0.1.0 (file:///projects/guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 1.50s
Running `target/debug/guessing_game`
Hello, world!

当你需要在项目中快速迭代时,run 命令就能派上用场,正如我们在这个游戏项目中做的,在下一次迭代之前快速测试每一次迭代。
重新打开 src∕main.rs 文件。我们将会在这个文件中编写全部的代码。
处理一次猜测
猜猜看程序的第一部分请求和处理用户输入,并检查输入是否符合预期的格式。首先,允许玩家输入猜测。在 src∕main.rs 中输入示例 2-1 中的代码。
文件名: src∕main.rs

fn main() {
println!("Guess the number!");
println!("Please input your guess.");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");
println!("You guessed: {}", guess);
}

这些代码包含很多信息,我们一行一行地过一遍。为了获取用户输入并打印结果作为输出,我们需要将io输入∕输出库引入当前作用域。io 库来自于标准库,也被称为 std:

#
# fn main() {
# println!("Guess the number!");
#
# println!("Please input your guess.");
#
# let mut guess = String::new();
#
# io::stdin()
# .read_line(&mut guess)
# .expect("Failed to read line");
#
# println!("You guessed: {}", guess);
# }

默认情况下,Rust 将 prelude 模块中少量的类型引入到每个程序的作用域中。
如果你需要的类型不在 prelude 中,你必须使用 use 语句显式地将其引入作用域。std:: io 库提供很多有用的功能,包括接收用户输入的功能。
如第一章所提及,main 函数是程序的入口点:

#
fn main() {
# println!("Guess the number!");
#
# println!("Please input your guess.");
#
# let mut guess = String::new();
#
# io::stdin()
# .read_line(&mut guess)
# .expect("Failed to read line");
#
# println!("You guessed: {}", guess);
# }

fn 语法声明了一个新函数,小括号 () 表明没有参数,大括号 { 作为函数体的开始。
第一章也提及了 println! 是一个在屏幕上打印字符串的宏:

#
# fn main() {
println!("Guess the number!");
println!("Please input your guess.");
#
# let mut guess = String::new();
#
# io::stdin()
# .read_line(&mut guess)
# .expect("Failed to read line");
#
# println!("You guessed: {}", guess);
# }

这些代码仅仅打印提示,介绍游戏的内容然后请求用户输入。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值