当前位置:网站首页>【C语言】猜数字小游戏+关机小程序
【C语言】猜数字小游戏+关机小程序
2022-07-23 08:46:00 【脑瓜子翁嗡】
前言
今天写猜数字游戏和关机小程序,在学习的时候也可以娱乐,学习和娱乐两不误,一起来体验一下写游戏的快乐吧!
1.猜数字小游戏
让电脑生成1~100的随机数,然后猜数字,猜数字肯定有猜大了,猜小了。猜大了返回猜大了,猜小了就返回猜小了,直到猜对了,猜对了就结束游戏。猜数字游戏我们玩完一把觉得不过瘾要再来一次,我们就的要用到循环。
(1)生成菜单
游戏一开始我们就要打印菜单,所以我们这里用do while 循环打印菜单,分装一个简单的menu 函数
void menu()
{
printf("*******************************\n");
printf("******** 1.play *******\n");//选1进入游戏
printf("******** 0.exit *******\n");//选0退出游戏
printf("*******************************\n");
}
(2)是否进入游戏
根据菜单的提示,我们是否玩游戏,都要输入一个数字来判断玩家是否进入游戏,所以我们就来定义一个变量input,我们这里用 switch 和 case 语句进行选择,选择1 就进入游戏猜数字;选择0则退出游戏;选择其他就提示选择错误,重新选择!
int main()
{
int input = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
printf("猜数字\n");
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择!\n");
break;
}
} while (input);//我们这里循环条件也是input,输入0,就会直接退出循环
return 0;
}
(3)猜数字game()
- 生成随机数
玩家玩游戏,我们就得让电脑随机生成一些数,让玩家去猜,我们这里用到了 rand 函数,我们看一下rand函数的使用:
在 rand 函数的使用里面说到了,调用 rand 函数之前需要先调用 sand 函数来设置我们的随机生成器,sand 函数的使用如下图:
我们想要随机数,电脑就要生成不一样的随机数,我们这里需要传一个值,这个值就是时间,时间每一分每一秒都在发生变化,这里引入一个时间戳
注意:我们生成随机数并不一次游戏只需生成一次所以我们将srand()函数放在我们的主函数里面
void game()
{
srand((unsigned int)time(NULL));
//1.生成随机数
int ret = rand()%100+1;//生成0~100的随机数
}
- 玩家猜数字
我们写一个循环,猜大了返回猜大了,猜小了返回猜小了,直到猜对了
void game()
{
int guess = 0;
//1.生成随机数
int ret = rand()%100+1;//生成0~100的随机数
//2.猜数字
while (1)
{
printf("请猜数字:>");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
(4)整个游戏完整代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("*******************************\n");
printf("******** 1.play *******\n");//选1进入游戏
printf("******** 0.exit *******\n");//选0退出游戏
printf("*******************************\n");
}
void game()
{
int guess = 0;
//1.生成随机数
int ret = rand()%100+1;//生成0~100的随机数
//2.猜数字
while (1)
{
printf("请猜数字:>");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();//猜数字整个逻辑
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择!\n");
break;
}
} while (input);
return 0;
}
浅玩一把游戏吧!
2.关机小程序
这里提示一下关机小程序纯属娱乐啦,也可以恶搞哦!
写一个关机程序,只要运行起来,电脑在1分钟内就关机,如果输入:我是猪,才能取消关机。
我们这里需要调用系统命令 shutdown -s -t 60 (-t表示设置时间来关机,60表示60秒),系统取消关机命令是shutdown -a
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char input[20] = {
0 };
system("shutdown -s -t 60");
again:
printf("请注意,你的电脑在1分钟内关机,如果输入我是猪,就取消关机\n");
scanf("%s", input);
if (strcmp(input, "我是猪") == 0)
{
system("shutdown -a");
printf("关机取消\n");
}
else
{
goto again;
}
return 0;
}
本章到这里就结束啦,如果有哪里写的不好的地方,请指正。
如果觉得不错并且对你有帮助的话请给个三连支持一下吧!
Fighting!!!
边栏推荐
- 寻找峰值[抽象二分练习]
- Vk36n5d anti power interference / mobile phone interference 5-key 5-channel touch detection chip anti freeze function ponding in the touch area can still be operated
- OKRK3399开发板预留I2C4挂载EEPROM
- Summary of JS data type judgment methods
- 多重背包!
- What level is rtx3090ti? What level is rtx3090ti graphics card? How about rtx3090ti graphics card
- 解决使用bert encoder出现的一系列问题
- Pagehepler lost the pit of the original SQL order by condition
- ArcGIS uses DEM data to delineate the specific steps and processes of catchment area
- 152. 乘积最大子数组
猜你喜欢

How many processors is Tianji 720 equivalent to Xiaolong? How about Tianji 720 equivalent to Xiaolong

LZ77文件压缩

剑指 Offer 46. 把数字翻译成字符串

104 二叉树的最大深度 和 543 二叉树的直径和 124 二叉树的最大路径和
![webstrom ERROR in [eslint] ESLint is not a constructor](/img/e9/b084512d6aa8c4116d7068fdc8fc05.png)
webstrom ERROR in [eslint] ESLint is not a constructor

Canvas 从入门到劝朋友放弃(图解版)

ThreadLocal interview Kills 11 consecutive questions
![寻找峰值[抽象二分练习]](/img/99/122e79784f0f07120680d2cbcf89da.png)
寻找峰值[抽象二分练习]

云呐|公司固定资产如何管理?公司固定资产如何管理比较好?
![[review of analog electricity - diode]](/img/dc/7b3c3187000be24053f0e69733444d.jpg)
[review of analog electricity - diode]
随机推荐
关于flex布局justify-content:space-around最后一个不对齐的解决方法和为什么这样子解决是讨论
Spotlight light box JS plug-in full screen enlarged picture
建议思源笔记能够兼容第三方同步盘
Stream stream is used for classification display.
完全背包!
OKRK3399開發板預留I2C4掛載EEPROM
Tell you Web3.0 I understand
How many processors is Tianji 1100 equivalent to snapdragon? How about Tianji 1100 equivalent to snapdragon
Find the maximum area of the island -- depth first search (staining method)
寻找峰值[抽象二分练习]
VK36N5D抗电源干扰/手机干扰 5键5通道触摸检测芯片防呆功能触摸区域积水仍可操作
【FLink】FLink Hash collision on user-specified ID “opt“. Most likely cause is a non-unique ID
剑指offer19 正则表达式
Renforcement de l'apprentissage - points de compréhension du gradient stratégique
ValidationError: Invalid options object. Dev Server has been initialized using an options object th
-bash: ifconfig: command not found
【WinForm】关于截图识别数字并计算的桌面程序实现方案
炫酷代码雨动态背景注册页面
websocket通用化封装设计与实现
(重链剖分)魔法树


