Rust语言——猜数游戏
目标
生成一个1~100间的随机数
提示玩家输入一个猜测
输入后程序提示猜测是大了还是小了
如果正确了,打印出一个庆祝信息,程序退出
- 首先我们做一个单次猜测
use std::io;
use rand::Rng;
use std::cmp::Ordering;//枚举类型 分别是小于大于和等于
fn main() {println!("猜数!! ");let secret_number = rand::thread_rng().gen_range(1, 101);println!("神秘数字为:{}", secret_number);println!("猜测一个数: ");//let foo = 1;//let为定义值操作//let bar = foo;//foo = 2;//报错 因为rust中被定义的变量不能改变类似java中的"常量"let mut guess = String::new();//let mut所定义的变量就可以改变值io::stdin().read_line(&mut guess).expect("无法读取行");//方法的参数是用引用进行传递的//read_line()具有返回值 OK||Err expect函数若read_line()返回值为Err就输出内部字符串 OK就赋值给guesslet guess: u32 = guess.trim().parse().expect("Please type a number!");//前面guess是新定义的整数类型 后面guess是就定义的字符串类型 trim是去掉两边空白 parse把字符串变为数值类型println!("你猜的数是:{}", guess);//String 和 io 均为库 ::代表库下的函数match guess.cmp(&secret_number){//cmp返回的是Ordering类型Ordering::Less => println!("Too small!"),Ordering::Greater => println!("Too big!"),Ordering::Equal => println!("You win!"),}
}
这里需要注意的有几点:
1.cargo.toml必须要添加rand包的依赖
2.引入rand::Rng 和 std::cmp::Ordering
3.rust中允许在一个变量之后使用相同名字定义另一个变量,但两个变量需要进行赋值连接
4.match 配合 Ordering类型进行匹配(类似java中的switch)
- 接下来我们要实现可以连续猜测的代码(直到猜对才停止)
use std::io;
use rand::Rng;
use std::cmp::Ordering;//枚举类型 分别是小于大于和等于
fn main() {println!("猜数!! ");let secret_number = rand::thread_rng().gen_range(1, 101);//println!("神秘数字为:{}", secret_number);//使用loop进行无限循环loop {println!("猜测一个数: ");//let foo = 1;//let为定义值操作//let bar = foo;//foo = 2;//报错 因为rust中被定义的变量不能改变类似java中的"常量"let mut guess = String::new();//let mut所定义的变量就可以改变值io::stdin().read_line(&mut guess).expect("无法读取行");//方法的参数是用引用进行传递的//read_line()具有返回值 OK||Err expect函数若read_line()返回值为Err就输出内部字符串 OK就赋值给guesslet guess: u32 = match guess.trim().parse(){//使用match来处理错误Ok(num)=>num,Err(_)=>continue,};//前面guess是新定义的整数类型 后面guess是就定义的字符串类型 trim是去掉两边空白 parse把字符串变为数值类型println!("你猜的数是:{}", guess);//String 和 io 均为库 ::代表库下的函数match guess.cmp(&secret_number){//cmp返回的是Ordering类型Ordering::Less => println!("Too small!"),Ordering::Greater => println!("Too big!"),Ordering::Equal => {println!("You win!");break;},}}
}
这里需要注意的是:
1.loop{} 进行无线循环
2.rust语言和其他语言一样break;跳出循环 continue;直接执行下一次循环
3.rust中处理错误一般使用match
Rust语言——猜数游戏相关推荐
- 猜价格游戏购物街c语言,猜数游戏实例
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...
- 八个小灯泡闪烁的c语言程序,C语言猜数游戏程序.doc
#include //包含 time函数 #define random(x) (rand()%x) void main() { int zhucaidan(); void youxijieshao() ...
- 猜数游戏教学设计C语言,猜数游戏优秀教学设计
猜数游戏优秀教学设计 篇一:一年级<猜数游戏>教学设计 教学内容:北师大版一年级上册第三单元<猜数游戏> 教学目标: 1.在猜数游戏的活动中,进一步理解加减法的意义,探索并掌握 ...
- c语言 猜数游戏-代码 外G版
思路 增加了2模式,可以简单地体会到乐趣,再也不用一个一个找数了. 一次游戏,一次加载,主要为了美观. 无聊的加了一个加载过程. 欢迎你们的点赞,关注,支持!你们的鼓励让我努力做一个合格的程序员. ...
- 猜数游戏c语言程序流程图,C语言猜数游戏代码
写在前面:本代码使用了随机数+循环体+时间戳等初等代码,仅供小白交流,参考!#include #include #include #include int menu() ...
- C语言 猜随机数大小,C语言 猜数游戏--产生一个随机数
#include #include #include int main(int argc, const char * argv[]) { // insert code here... printf(& ...
- C语言猜数游戏两位数
老师布置的作业,VS2010 想问问大家应该怎么写呀
- 【Rust指南】配置加速Cargo下载、更新依赖库|利用随机数编写Rust猜数游戏
文章目录 前言 一.Cargo配置问题与VSC的实用插件下载 1.解决Cargo拉取crates.io非常慢的问题 2.VSC自动管理Rust项目的实用插件 二.编写Rust 的猜数游戏 1.抓取 ...
- Rust——猜数游戏、数据类型、函数、循环和if条件表达式
目录 一.数据类型 (一).基础类型 (二).进制 (三).复合类型 ①tuple ②数组 二.函数 三.循环和if (一).if (二).loop (三).while (四).for 四.猜数游戏 ...
最新文章
- 跳一跳python源码下载_Python玩跳一跳【简】
- Angular--TypeScript finalize 方法
- Ubuntu 使用 heirloom-mail 调用外部邮箱 SMTP 服务器发送邮件
- BZOJ 2733: [HNOI2012]永无乡 [splay启发式合并]
- DataGridView 实现记录颜色间隔交替显示
- RabbitMQ指南之三:发布/订阅模式(Publish/Subscribe)
- 1087 1 10 100 1000
- iOS应用程序瘦身的静态库解决方案
- DoIP诊断技术一点通
- 【Cad To Excel】CAD中表格到EXCEL的转换
- python定义一个整数变量_Python变量和数据类型详解
- 新浪微博开发平台接入流程(1)---注册应用
- 日系插画学习笔记(五):日系角色脸部画法-1头部
- C - Fewest Flops
- (原)android系统下绑定Server的时候报MainActivity has leaked ServiceConnection的错误
- 2021年最新ABAQUS复合材料建模仿真与应用专题培训
- jasypt数据源加密
- linux 浏览器问题
- 华为防火墙双机热备(link-group和Eth-trunk)
- 多角度探讨灵活可扩缩的云上游戏解决方案