C语言|一个简单的文章让你轻松理解猜字小游戏的原理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、游戏分析
- 二、代码实现
- 1.建立菜单
- 2.如何产生随机数
- 3.判断猜的数字
- 三、完整代码
- 四、运行效果
前言
猜字小游戏,c语言初学者在学习过程必不可少的练手小项目,虽然在大佬面前,这个弄出来有手就行,但对于初学者,这其中的思维逻辑还是值得学习的,现在就跟着我一起往下去看。(作者也是菜鸟,若哪里写得不好,请大佬指出 (狗头保命))``
一、游戏分析
游戏规则:在1~100之间随机一个数,让玩家猜,猜错了提示大了还是小了,直至玩家猜对。
构建游戏思路:
- 建立一个最简单的菜单,让玩家选择是否玩猜字游戏。
- 如何产生随机数。
- 判断猜的数字是否正确。
二、代码实现
1.建立菜单
代码如下(示例):
void menu()//这里使用void是不需要返回值类型没有任何要求
{printf("*************************\n");printf("******play game:>1*****\n");printf("******exit game:>0*****\n");printf("*************************\n");
}int main()
{int input = 0;do//这里选择do while最合适,想让他先玩游戏再选择是否接着玩。{menu();printf("请选择:>\n");scanf("%d", &input);switch (input){case 0:printf("退出程序\n");break;case 1:break;default:printf("选择错误,请重新选择\n");break;}} while (input);
通过do while switch,这样一个简单的菜单就弄好了。
2.如何产生随机数
产生随机数则需要用到rand()和种子生成器srand(),因为是库函数,对应的头文件是stdlib.h
首先介绍rand(), rand()的随机值范围是从0到RAND_MAX(值为32767),但是他有一个缺点,再次输入的时候出现值是相同的,如图所示:
srand()的作用就来了,通过输入任意值使得rand()随机出的来的值改变,但是也有缺点,就是使rand()值虽然改变了,但是每次值都是不变,若是能让srand()中输入值不断在变化,那么rand()就不会每次都相同了。引入时间戳的概念,因为时间是一直在变化的,所以可以使用time(),他对应的头文件是time.h。
代码如下:
srand((unsigned int)time(null));
//srand函数所需要的是unsigned int类型,所以需要强制转换类型,而time函数是time_t类型,而time所需要的是指针,但是我们只是想让它随机一个值,不在意是什么值,直接使用空指针。
代码如下:
int ret = rand()%100+1;//rand()%100只会输出1~99的数,加一之后即可输出1~100的值。
3.判断猜的数字
既然是猜数字游戏,当然不会让玩家只输入一次数据,所以我们需要一个循环来让玩家多次输入。同时,还需要给与玩家提示,减少玩家失误次数。
while (1)
{
printf(“请输入你猜的数字:>”);
scanf(“%d”, &INPUT);
if (INPUT>ret){printf("你猜的值过大\n");}else if (INPUT<ret){printf("你猜的值过小\n");}else{printf("恭喜你,猜对了!!");break;}
}
三、完整代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>void menu()
{printf("*************************\n");printf("******play game:>1*****\n");printf("******exit game:>0*****\n");printf("*************************\n");}
void game()
{int INPUT=0;int ret = rand() % 100 + 1;while (1){printf("请输入你猜的数字:>");scanf("%d", &INPUT);if (INPUT>ret){printf("你猜的值过大\n");}else if (INPUT<ret){printf("你猜的值过小\n");}else{printf("恭喜你,猜对了!!");break;}}}int main()
{srand((unsigned int)time(NULL));int input = 0;do{menu();printf("请选择:>");scanf("%d", &input);switch (input){case 0:printf("退出程序\n");break;case 1:game();break;default:printf("选择错误,请重新选择\n");break;}} while (input);//当玩家输入0时退出循环,当玩家输入非0时重新循环。return 0;
}
四、运行效果
C语言|一个简单的文章让你轻松理解猜字小游戏的原理相关推荐
- Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界
Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界 目录 输出结果 设计思路 输出结果 设计思路 from tkinter import * import tkint ...
- C语言实现猜字小游戏
前言 一.游戏的设计过程 二.函数的实现 三.游戏的整体实现 四.总结 前言 设计一个猜数字游戏,在1-100之间的数,猜中的人准备被砸水球吧! 一.游戏的设计过程 1,创建一个目录,供用户开始与结束 ...
- 一个Python猜字小游戏
开始Python的学习已经有了一小段时间,同学进行java的编程上传,我一看挺有意思,也来凑凑热闹,也希望可以得到锻炼,希望各位大佬可以指正一下我的代码,或是展示展示大佬们的高超编码手艺,Python ...
- 用random的randint方法写一个猜字小游戏
import random num = random.randint(0,100) start = 0 end = 100 n = 0 while n < 10:num1 = int(input ...
- html抓取文章,网页抓取工具:一个简单的文章采集示例
通过采集网页抓取工具火车采集器官网的faq为例来说明采集器采集的原理和过程. 本例以 http://faq.locoy.com/qc-12.html 演示地址,以火车采集器V9为工具进行示例说明. ( ...
- 用python做C语言的猜数字游戏,[Python3 练习] 007 简单的猜数字小游戏
题目:简单的猜数字小游戏 (1) 描述 程序随机生成一个数字,玩家用键盘输入所猜数字,在规定次数内猜对为胜. (2) 要求 程序随机生成一个 1 到 100 的自然数 有 7 次机会去猜 机会用尽之前 ...
- python实现简单小游戏_用python开发一个有趣的猜数字小游戏(实现简单的GUI界面学习)...
文章目录 用python开发一个有趣的猜数字小游戏 用于字符串的格式化,通过 {} 和 : 来代替以前的 % 1. python的GUI编程 1.1 pythonGUI常用库对比 Python 提供了 ...
- C语言 | 猜字母小游戏(简单易学)
下面是一个使用C语言编写的猜字母小游戏的示例代码: #include <stdio.h> #include <stdlib.h> #include <time.h> ...
- 教你如何用C语言设计一个有趣的猜数字小游戏
目录 前言 猜数字游戏 打印菜单 处理玩家选择的操作 编写猜数字游戏函数 游戏中要猜数字从哪来?(配置随机数生成器) 时间戳 开始生成随机数 game函数内部编写 完整代码 总结 前言 好久不见,今天 ...
最新文章
- Hadoop(HDFS、YARN、HBase、Hive和Spark等)默认端口表
- vs代码显示波浪线,但没编译错误
- Item 16: 让const成员函数做到线程安全
- Qt中的QSpinBox
- nginx php大文件上传,Nginx+PHP上传大文件设置
- 用C#编写一个进程外的COM组件示例代码讲解
- screwing up
- 一般不要在头文件中定义变量
- 无法使用prop_Adobe Launch配置流量变量(Prop)
- java JDK11对比JDK8
- MarkdownPad-显示Awesomium 已停止工作,This view has carshed!错误
- 黑莓9810JAVA,黑莓9810 中文刷机包
- 【更新中】SmartGit 注册码 算法注册机
- 谷歌浏览器访问抖音网页版白屏
- 如何理解矩阵的「秩」?
- ISTQB-TM-大纲
- CSS3实现平行四边形
- 计算机考试文件夹改内容,2010年职称计算机考试:文件和文件夹的管理
- vue自定义指令---输入框禁止输入特殊字符
- iOS自动订阅商品(Auto-Renewable Subscriptions)相关处理