iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何学识Rust编写一个简单的游戏
  • 102
分享到

如何学识Rust编写一个简单的游戏

2023-06-15 19:06:50 102人浏览 安东尼
摘要

这篇文章主要讲解了“ 如何学识Rust编写一个简单的游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ 如何学识Rust编写一个简单的游戏”吧!安装 Rust你可以使用 Rustup 安装一

这篇文章主要讲解了“ 如何学识Rust编写一个简单的游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ 如何学识Rust编写一个简单的游戏”吧!

安装 Rust

你可以使用 Rustup 安装一个 Rust 工具链,或者你可以在线尝试 Rust 而不在本地安装它。

如果你在本地安装,你应该定期用 rustup update 来更新它,以保持你的工具链的新鲜,并使用 carGo update 来保持你的库的最新版本。

Rust 语言版本的猜数字

Rust 是一门赋予任何人构建可靠和高效的软件能力的语言。你可以通过编写一个 Rust 版本的“猜数字”游戏来探索 Rust。

第一步是编写一个 Cargo.toml 文件。你可以使用 cargo new 命令生成一个骨架 Cargo.toml。这几乎是开始一个 Rust 项目的最佳方式。

$ cargo new guess$ cd guess$ ls -1Cargo.tomlsrc/

Cargo.toml 文件为你的包命名,并给它一些元数据,最重要的是,指明了它依赖于 rand crate。

[package]name = "guess"version = "2020.11.0"authors = ["Moshe Zadka <moshez@opensource.com>"]edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies]rand = "*"

Rust 中的许多东西不是由语言或标准库提供的。取而代之的是,你可以从某个外部 crate 得到它们,这些 crate 可以做许多事情。

程序逻辑在 src/main.rs 中:

use rand::Rng;use std::io::BufRead; fn main() {    let mut rng = rand::thread_rng();    let random = rng.gen_range(1..101);    println!("Guess a number between 1 and 100");    for line in std::io::stdin().lock().lines() {        let parsed = line.ok().as_deref().map(str::parse::<i64>);        if let Some(Ok(guess)) = parsed {            match guess {                _ if guess < random => println!("Too low"),                _ if guess > random => println!("Too high"),                _ => {                    println!("That's right");                    break;                }            }        }    }}

代码的前两行声明你要做什么。在本例中,rand::Rng 生成一个猜测值,而 trait std::io::BufRead 使得可以从标准输入中读取。

Rust 代码的入口在 main() 函数中,所以下一步就是定义 main()

要给一个变量赋值,先放 let,再放变量的名字,后面放 = 号。这样就创建了一个不可变变量。

Rust 中大多数变量都是不可变的,但是 rng 对象必须是可变的(mut)。例如,语句 let random = 0 给random 变量分配一个零值。

函数的第一行创建了一个线程安全的 Rng 对象,并将其分配给变量 rng。Rust 是建立在线程和内存安全的基础上的,所以你必须在开始写代码时就考虑到这些事情。

程序的下一行读取函数 gen_range() 的结果,并将其分配给名为 random 的变量。该函数取一个最小值(包含)和一个上界(不包含)。为了也包含上界,你可以用一个等号来标记较大的数字(例如,1...=100),或者你也可以像我在代码中做的那样,将上界设置为比你的预期最大值大 1。在这种情况下,该范围是 1 到 100,使得游戏刚好有足够的挑战性。

中央循环在 std::io::stdin() 中迭代行。由于有各种可能导致行不能读取的例外情况,Rust 要求你用一个 Result 来包裹一行。有时候可能无法将一行解析为一个整数。

这段代码使用条件模式匹配来忽略所有会导致错误的行:

        let parsed = line.ok().as_deref().map(str::parse::<i64>);        if let Some(Ok(guess)) = parsed {            // ...        }

第一行创建了一个 Result<Option<i64>, ...> 对象,因为它可能在读取或解析步骤中失败。由于下一行只在 Some(Ok(guess)) 上匹配,每当一行的结果是一个不匹配的值时,它就会跳过 if 语句。这是一种强大的忽略错误的方法。

Rust 支持条件表达式和流程控制,比如循环。在“猜数字”游戏中,只要猜中的值不等于 random,Rust 就会继续循环。

if 语句的主体包含一个 Rust 的 match 语句的三向分支。虽然 match 最常用于模式匹配,但它也可以检查任意条件。在这种情况下是打印一个适当的信息,如果猜测是正确的,则中断(break)循环。

示例输出

现在你已经写好了你的 Rust 程序,你可以运行它来玩“猜数字”游戏。每次运行程序时,Rust 都会选择一个不同的随机数,所以继续猜,直到找到正确的数字。

$ cargo run   Compiling guess v2020.11.0 (/Users/mzadka/src/guess)    Finished dev [unoptimized + debuginfo] target(s) in 0.70s     Running `target/debug/guess`Guess a number between 1 and 10050Too high25Too high12Too low18Too high15Too high13Too low14That's right

典型的做法是用 cargo run 来测试程序。最终,你可能会使用 cargo build 分成两个独立的步骤构建一个可执行文件并运行它。

感谢各位的阅读,以上就是“ 如何学识Rust编写一个简单的游戏”的内容了,经过本文的学习后,相信大家对 如何学识Rust编写一个简单的游戏这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何学识Rust编写一个简单的游戏

本文链接: https://www.lsjlt.com/news/281403.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何学识Rust编写一个简单的游戏
    这篇文章主要讲解了“ 如何学识Rust编写一个简单的游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ 如何学识Rust编写一个简单的游戏”吧!安装 Rust你可以使用 Rustup 安装一...
    99+
    2023-06-15
  • 如何通过C语言编写一个简单的游戏
    本篇内容主要讲解“如何通过C语言编写一个简单的游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何通过C语言编写一个简单的游戏”吧!去取一个随机数从写一个函数来选择一个随机数字来开始“猜数字”...
    99+
    2023-06-15
  • 如何通过C++编写一个简单的迷宫游戏?
    如何通过C++编写一个简单的迷宫游戏?迷宫游戏是一种经典的益智游戏,它需要玩家通过控制一个角色在迷宫中寻找出口的过程。在本文中,我们将学习如何使用C++编写一个简单的迷宫游戏。首先,让我们定义迷宫的基本结构。我们可以使用二维数组来表示迷宫的...
    99+
    2023-11-02
    游戏 C++ 迷宫
  • 如何通过C++编写一个简单的扫雷游戏?
    如何通过C++编写一个简单的扫雷游戏?扫雷游戏是一款经典的益智类游戏,它要求玩家根据已知的雷区布局,在没有踩到地雷的情况下,揭示出所有的方块。在这篇文章中,我们将介绍如何使用C++编写一个简单的扫雷游戏。首先,我们需要定义一个二维数组来表示...
    99+
    2023-11-02
    编写 简单 C++编程关键词:扫雷游戏
  • 怎么用Python编写一个简单的游戏
    本篇内容介绍了“怎么用Python编写一个简单的游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在这个系列中,我们要用不同的编程语言编写相...
    99+
    2023-06-15
  • 怎样用JavaScript编写一个简单的游戏
    这篇文章将为大家详细讲解有关怎样用JavaScript编写一个简单的游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。通过使用一个简单的游戏来练习一些基本的...
    99+
    2024-04-02
  • 如何通过C++编写一个简单的贪吃蛇游戏?
    如何通过C++编写一个简单的贪吃蛇游戏?贪吃蛇游戏是经典的游戏之一,通过控制蛇的移动来吃食物并获得分数。本文将介绍使用C++编写一个简单的贪吃蛇游戏的步骤和思路。步骤:引入必要的头文件和库:首先,我们需要引入iostream头文件来进行输入...
    99+
    2023-11-03
    C++ 游戏编程 贪吃蛇
  • 利用Rust编写一个简单的字符串时钟
    目录1、简介2、用到的知识点2.1 取utc时间2.2 图片变换为像素图案2.3 字符方式显示当前时间2.4 时间刷新1、简介 用rust写的一个简单的练手的demo,一个字符串时钟...
    99+
    2022-12-26
    Rust字符串时钟 Rust 时钟
  • 基于C语言编写一个简单的抽卡小游戏
    目录效果图展示开始的界面输入1输入10输入0实现代码test4.26.c许愿.cgame.h下载小奔最近学了C语言不少的东西,但是想用学到的东西来搞一个小游戏。 不过小奔就不做那些猜...
    99+
    2024-04-02
  • c# 编写的简单飞行棋游戏
    目录项目效果实现代码基于winform制作的图形界面程序效果代码项目效果 实现代码 using System; namespace 飞行棋项目 { class Pr...
    99+
    2024-04-02
  • 如何用Java二维数组写一个简单的扫雷游戏
    本篇内容介绍了“如何用Java二维数组写一个简单的扫雷游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首...
    99+
    2024-04-02
  • Java使用定时器编写一个简单的抢红包小游戏
    目录1.新建项目2. 添加 计时器,按钮组件3.抢红包业务逻辑4.效果演示1.新建项目 2. 添加 计时器,按钮组件 <xml version="1.0" encodi...
    99+
    2024-04-02
  • 如何用Python编程构建一个简单的掷骰子游戏
    这篇文章主要介绍“如何用Python编程构建一个简单的掷骰子游戏”,在日常操作中,相信很多人在如何用Python编程构建一个简单的掷骰子游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python编程...
    99+
    2023-06-15
  • JavaScript如何编写一个贪吃蛇游戏
    这篇文章主要介绍了JavaScript如何编写一个贪吃蛇游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。写的比较乱,有个逻辑错误:蛇吃了果...
    99+
    2024-04-02
  • 如何编写一个VBScript简单的页面
    这篇文章主要介绍“如何编写一个VBScript简单的页面”,在日常操作中,相信很多人在如何编写一个VBScript简单的页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写一个VBScript简单的页面...
    99+
    2023-06-09
  • 利用c++写一个简单的推箱子小游戏
    效果图 相信各位都肯定完整这种推箱子的小游戏。游戏玩法很简单,那就是一个人把所有的箱子推动到对应的位置那就可以赢了。 那么我们接下来看看这个推箱子的游戏改怎么写 char ma...
    99+
    2024-04-02
  • Python turtle编写简单的球类小游戏
    目录1. 前言2. 需求描述3. 制作流程3.1 初始化变量3.2 通用函数3.3 游戏角色函数3.4 让小球动起来4. 总结1. 前言 turtle (小海龟) 是&nb...
    99+
    2024-04-02
  • 如何使用Html5写一个简单的俄罗斯方块小游戏
    小编给大家分享一下如何使用Html5写一个简单的俄罗斯方块小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!游戏效果:制作思路因为书里的俄罗斯方块比较普通,太常...
    99+
    2023-06-09
  • 如何使用C++编写一个简单的图像识别程序?
    如何使用C++编写一个简单的图像识别程序?在现代科技的发展中,图像识别技术扮演了越来越重要的角色。无论是人脸识别、物体检测还是自动驾驶,图像识别都发挥着关键作用。本文将介绍如何使用C++编写一个简单的图像识别程序,帮助读者了解图像识别的基本...
    99+
    2023-11-03
    简单程序 图像识别 C++编程
  • 教你用Js写一个简单的五子棋小游戏
    目录棋盘绘制棋子的绘制在点击 canvas 的时候获取相对于棋盘数据的坐标点是否结束悔棋功能总结 这里的五子棋只做一些基础的功能,对于相对专业的规则不做处理。 那...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作