返回

Rust之猜数字游戏

前端


代码是一种语言,就像我们人类的语言一样,它可以用来交流、传达信息。而计算机,就是这个世界上最擅长理解代码的“人”,它可以根据代码的指令,做出各种各样的操作。

今天,我们就来用Rust这种语言,实现一个猜数字的小游戏。在这个游戏中,计算机将生成一个随机数,玩家需要猜测这个数字。如果玩家猜对了,则游戏结束,玩家获胜。如果玩家猜错了,则计算机将给出提示,帮助玩家缩小猜测范围。

为了实现这个游戏,我们需要具备以下几点知识:

  1. 如何用Rust生成一个范围内的随机整数
  2. 如何获取用户在控制台输入的内容,并转成整数
  3. 如何向控制台输入内容
  4. 如何控制代码循环执行

1. 如何用Rust生成一个范围内的随机整数

在Rust中,可以使用rand库来生成随机数。首先,我们需要添加rand库的依赖项:

[dependencies]
rand = "0.8.5"

然后,就可以使用rand库来生成随机数了。例如,以下代码可以生成一个0到100之间的随机整数:

use rand::Rng;

let mut rng = rand::thread_rng();
let random_number = rng.gen_range(0..=100);

2. 如何获取用户在控制台输入的内容,并转成整数

在Rust中,可以使用std::io::stdin()函数来获取用户在控制台输入的内容。然后,可以使用parse()方法将用户输入的内容转换成整数。例如,以下代码可以获取用户在控制台输入的内容,并将其转换成整数:

use std::io::{self, Write};

fn main() {
    let mut input = String::new();

    print!("Please input a number: ");
    io::stdout().flush().unwrap();

    io::stdin().read_line(&mut input).unwrap();

    let number = input.trim().parse::<i32>().unwrap();

    println!("The number you input is: {}", number);
}

3. 如何向控制台输入内容

在Rust中,可以使用println!()宏来向控制台输入内容。例如,以下代码可以在控制台输出"Hello, world!":

println!("Hello, world!");

4. 如何控制代码循环执行

在Rust中,可以使用loop来控制代码循环执行。例如,以下代码将无限循环地输出"Hello, world!":

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

现在,我们已经掌握了以上四种知识,就可以开始实现猜数字游戏了。

use rand::Rng;
use std::io::{self, Write};

fn main() {
    let mut rng = rand::thread_rng();
    let random_number = rng.gen_range(0..=100);

    loop {
        print!("Please input a number: ");
        io::stdout().flush().unwrap();

        let mut input = String::new();
        io::stdin().read_line(&mut input).unwrap();

        let number = input.trim().parse::<i32>().unwrap();

        if number == random_number {
            println!("Congratulations! You guessed the number!");
            break;
        } else if number < random_number {
            println!("Your guess is too small.");
        } else {
            println!("Your guess is too big.");
        }
    }
}

这个游戏很简单,但它可以帮助我们理解Rust的一些基本知识。希望大家能够通过这个游戏,对Rust有一个初步的认识。