返回

菜鸡前端的 Rust 学习笔记(二):一场刺激的猜数字游戏

前端





**菜鸡前端的 Rust 学习笔记(二):一场刺激的猜数字游戏** 

**引言** 

新手 Rustacean 们,准备好迎接一场激动人心的编码冒险了吗?在这场 Rust 猜数字游戏中,我们将踏上探索 Rust 基本原理的征程,让初学者也能领略这门备受推崇的编程语言的魅力。

**认识我们的武器库** 

* **let:**  Rust 的赋值超级英雄,用于将变量与数据值联系起来。
* **match:**  Rust 的多面手,用于将数据与各种可能性进行匹配。
* **方法:**  Rust 的超级力量,用于为我们的数据结构和 ২ types 赋予行为。
* **板条箱:**  Rust 的模块化工具箱,用于组织和打包我们的 Rust 代码。
* **闭包:**  Rust 的秘密武器,用于将一段可调用的的稍作包装,以便在需要时重新使用。

**游戏规则:** 

1. 我们的 Rust 程序将生成一个从 1 到 100 的秘密数字。
2. 玩家将不断猜测这个数字,而 Rust 盟友将提供反馈。
3. 玩家的任务是尽快找出这个秘密数字,并使用最少的猜测。

**编码之旅:** 

1. **初始化游戏舞台:** 

```rust
use std::io;

fn main() {
    println!("欢迎来到 Rust 猜数字游戏!\n\n");

    // 生成秘密数字
    let secret_number = (1..=100).random();
}
  1. 玩家出招:
    // 循环直到玩家猜中数字
    loop {
        println!("请输入一个数字介于 1 到 100:");

        // 玩家猜测
        let mut guess = String::new();

        // 读取玩家猜测
        io::stdin.read_line(&mut guess)
            .expect("error: failed to read input");

        // 将猜测转换为数字
        let guess_number: u8 = guess.trim().parse()
            .expect("error: failed to parse input");
}
  1. 评估猜测:

使用 match ,我们可以将玩家的猜测与可能的选项进行匹配:

        match guess_number {
            // 玩家猜中了!
            x if x == secret_number => {
                println!("恭喜!你猜中了秘密数字。");
                break;
            },
            // 玩家猜得太小了
            x if x < secret_number => {
                println!("太小了!再试一试。");
            },
            // 玩家猜得太大了
            x if x > secret_number => {
                println!("太大了!再试一试。");
            },
            // 其他无效的猜测
            _ => {
                println!("无效猜测。请重新开始。");
            },
        }
  1. 胜利的喜悦:

如果玩家猜中了秘密数字,我们便以胜利的音符结束游戏:

        println!("\n游戏结束!谢谢玩 Rust 猜数字游戏。");
    }

感悟与总结

  • 通过一场有趣的游戏,我们潜入 Rust 的世界,窥探了 let、match、方法、板条箱和闭包的奥秘。
  • 掌握这些概念将为我们今后的 Rust 编程之旅奠定坚实的基础。
  • 记住,编码是探索、创造和不断完善的过程。