C语言趣味小游戏——猜数字(1到100之间)
游戏的条件:
1:随机生成1~100之间的数字
2:可以反馈,如果猜小了就反馈小了,如果猜大了就反馈大了,直到正确为止
3:自行决定是否结束
可以学到的内容:
1:初步认识时间戳的运用
2:初步认识循环怎样嵌套
3:初步理解do while循环
3:锻炼写代码的逻辑能力
4:部分函数
正文:
1.首先想要直接进入游戏,可以使用do while循环,因为它是先执行,后判断(先进入游戏,再决定玩不玩)
void menu() {printf("********************\n");printf("****** 1.play ******\n");printf("****** 0.over ******\n");printf("********************\n");
}
//1为真,0为假
int main() {int input = 0;do {menu();//游戏菜单printf("请选择:");scanf("%d", &input);//输入数字0结束 1开始 2...(重新选择)//游戏框架switch (input) { case 0:printf("退出游戏\n");break;case 1:printf("猜数字\n");break;default:printf("选择错误,请重新选择 !\n");break;}} while (input);return 0;
}
一个框架,但是游戏的实现还没写
2.
游戏开始需要先有一个能随机生成数字的函数
C语言提供了一个 rand 函数
功能:
返回值:
头文件:
总结:头文件<stdlib.h> ; 类型:int ; 参数:void ; 返回值:0到32767
#include<stdlib.h>
void game() {//1.生成一个随机数int ret=rand();printf("%d\n", ret);
}//1为真,0为假
int main() {int input = 0;do {menu();//游戏菜单printf("请选择:");scanf("%d", &input);//输入数字0结束 1开始 2...(未知)//游戏框架switch (input) { case 0:game();break;case 1:game();break;default:printf("选择错误,请重新选择 !\n");break;}} while (input);return 0;
}
测试1: 测试2:
两次的结果都一样,说明有问题
重新看一下rand函数的简介
在此示例中,随机种子被初始化为表示当前时间(调用)的值,以便在每次运行程序时生成不同的值
总结:这个函数生成的数可以随着时间的变化而改变,但是需要引用另一个time函数和srand函数
再调用srand函数
还未解决,所以还是需要time函数
新的框架
void menu() {printf("********************\n");printf("****** 1.play ******\n");printf("****** 0.over ******\n");printf("********************\n");
}
#include<time.h>
#include<stdlib.h>
void game() {//srand((unsigned int)time(NULL)); //不能放在这里,如果放这里,游戏开始一次就调用一次,数字会很接近//只需要调用一次,放在主函数里面就够了//1.生成一个随机数int ret=rand()%100+1;//任何数%100 都是0~99之间,再加1,就是1到100//printf("%d\n", ret);// ↑ 写游戏主体前要屏蔽
}//1为真,0为假
int main() {int input = 0;srand((unsigned int)time(NULL));do {menu();//游戏菜单printf("请选择:");scanf("%d", &input);//输入数字0结束 1开始 2...(未知)//游戏框架switch (input) { case 0:game();break;case 1:game();break;default:printf("选择错误,请重新选择 !\n");break;}} while (input);return 0;
}
游戏整体:
void menu() {printf("********************\n");printf("****** 1.play ******\n");printf("****** 0.over ******\n");printf("********************\n");
}
#include<time.h>
#include<stdlib.h>
//2.猜数字
void game() {//srand((unsigned int)time(NULL)); //不能放在这里,如果放这里,游戏开始一次就调用一次,数字会很接近//只需要调用一次,放在主函数里面就够了int guess = 0;//1.生成一个随机数int ret=rand()%100+1;//随机数的生成,不能在循环里,不然猜一次就生成一次,永远猜不对//任何数%100 都是0~99之间,再加1,就是1到100//printf("%d\n", ret);// ↑ 写游戏主体前要屏蔽,不然就会显示数字了while (1) {printf("猜数字 !\n");// 一定要放在循环里面,不然只会执行一次scanf("%d", &guess);// 一定要放在循环里面,不然只会执行一次if (guess < ret) { //区分好大和小printf("猜小了\n");}else if (guess > ret) { //区分好大和小printf("猜大了\n");}else {printf("猜对了\n");break;}}
}//1为真,0为假
int main() {int input = 0;srand((unsigned int)time(NULL));do {menu();//游戏菜单printf("请选择:");scanf("%d", &input);//输入数字0结束 1开始 2...(未知)//游戏框架switch (input) { case 0:game();break;case 1:game();//跳转到猜数字游戏的主体中break;default:printf("选择错误,请重新选择 !\n");break;}} while (input);return 0;
}
C语言趣味小游戏——猜数字(1到100之间)相关推荐
- C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)
题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...
- C语言入门小游戏——猜数字游戏(详解)
大家好,我是十一,今天给大家带来"猜数字游戏"的代码和讲解. 目录 前言 基本流程 1.打印菜单 1.1主函数逻辑 2.生成随机数 随机数生成结果 2.1srand函数 2.2时间 ...
- C语言趣味小游戏——三子棋
全篇无任何废话,本文的解释大多数都在代码段中,所以一定要看代码,边看边学边理解. 这只是初学者入门的一个小游戏,不难懂,没有什么复杂的内容 可以先学习一下比三子棋还简单的猜数字小游戏 C语言趣味小游戏 ...
- c语言小游戏猜数字学习完函数后的小练习。
今天为大家分享一个简单的C语言小游戏--猜数字:对于刚学习完函数的小伙伴这是一个简单的练手游戏:其中唯一超纲的内容就是随机数的生成:下面为大家简单介绍这个小游戏的实现思路.希望大家看完以后亲自实践一下 ...
- C++小游戏—猜数字
今天我们用C++语言来制作一个小游戏-猜数字. #include<iostream> #include<ctime> using namespace std; int main ...
- Python小游戏 猜数字——非常有趣的小游戏
猜字游戏 游戏规则:程序产生一个[1, 100]之间的随机整数,用户输入整数进行猜测 如果猜对了,就会循环你是否要继续玩游戏 如果猜错了,程序会提示你是猜高了还是猜低了,然后让你继续输入整数进行猜测. ...
- Qt小游戏-猜数字游戏(使用设计器完成界面设计)
目录 1.需要的知识点: 2.工程创建好后,先在设计器中实现界面 3.代码实现部分 编辑 使用QtCreator 完成简单小游戏-猜数字游戏实现效果如下: 1.需要的知识点: QLabel显示图片, ...
- 【C语言】:第一个小游戏-猜数字(内推两个特好用的软件)
学习C语言也有一段时间了,从最开始的一脸懵逼抓耳挠腮,然后再是重新振作,最后到现在的懵懵懂懂.其实也挺不容易的,不过,连我这种九年义务教育的漏网之鱼都能学会C语言,那还有谁学不会,兄弟们看到这不直接热 ...
- 用C语言写一个简单的小游戏——猜数字
我们该如何设计这个程序? 1.首先应该打印一个菜单,让玩家选择玩游戏或者退出游戏 2.当玩家选择玩游戏,我们让电脑生成一个1~100的随机数,让玩家去猜 3.如果玩家猜的数比电脑生成的数大,我们提示猜 ...
最新文章
- 机器不学习:浅显易懂!「高中数学」读懂梯度下降的数学原理
- 基于局部均方差相关信息的图像去噪及其在实时磨皮美容算法中的应用。
- Web数据库:信息化持续改善的最佳工具
- leetcode------Subsets
- C++笔记-使用std::funcional代替函数指针
- 机器学习模型部署文章存档
- 纵横安卓刷机界的CM,如今转行做无人车了,还获得了加州路测许可
- HiveSQL解析过程详解
- 区块链大有前途,数字货币不会消失
- 【论文导读】Selecting Data Augmentation for Simulating Interventions
- java算法面试题_Java算法面试题汇总
- 一步一步教你安装并登陆My SQL(最详细教程,没有之一)
- 软件测试影响最深的bug,软件测试面试题-那些让我印象深刻的bug
- OpenCV实现显著性检测中的谱残差法(Spectral Residual Method)涉及到了傅立叶正反变换
- D-013 蜂鸣器硬件电路设计
- SQL Server连接本地数据库时系统找不到指定文件
- 【Python】创蓝253云通讯平台国际短信API接口DEMO
- 英语中并列句的四种类型
- 洛谷4550 收集邮票(期望DP)
- 怎样使用计算机求一个数的立方根,计算机求数立方根的数学教案
热门文章
- spatial-Spectral Clustering with Anchor Graph for Hyperspectral Image
- 使用GNS3实验MPLS协议
- php 5.3 register_globals,PHP中register_globals参数设置
- google量子计算机science,Science封面:谷歌实现量子化学模拟,迄今为止全球首例!...
- 1.Java获取本机IP地址,主机名,域名
- IC验证——UVM学习——验证平台中的组件
- 量子计算机叠加态的确定,用量子叠加态坍缩理论描述认知决策的过程
- 金蝶云星空和积加ERP单据接口对接
- Nginx+rtmp+ffmpeg搭建视频转码服务
- Swagger3实现API文档管理:让前后端合作更加顺畅