当前位置:网站首页>【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!!!
边栏推荐
- 第三章 复杂一点的查询
- Aruba学习笔记05-配置架构- WLAN配置架构
- Ffmpeg 1 - Overview / installation
- Towhee 每周模型
- Tensor、Numpy、PIL格式转换以及图像显示
- LabVIEW运行中改变Chart的历史长度
- JS to implement encode64 encryption
- STM32输出SPWM波,HAL库,cubeMX配置,滤波后输出1KHz正弦波
- 力扣142题:环形链表2
- How can manual testing turn to automated testing? Byte 5 years of automation experience talk about
猜你喜欢

【WinForm】关于截图识别数字并计算的桌面程序实现方案

Chicken and egg, products and Strategies

C语言实现课堂随机点名系统

pageHepler丢失原sql order by条件的坑

How do FPGA engineers design complex systems?

Stream stream is used for classification display.

VK36N5D抗电源干扰/手机干扰 5键5通道触摸检测芯片防呆功能触摸区域积水仍可操作

多重背包!

spotlight灯箱js插件全屏放大图片

Consensys Quorum Benchmark Test
随机推荐
链下数据互操作
Pycharm读取Excel文件时报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+ ; not supported )
求岛屿最大面积--深度优先搜索(染色法)
Swift hex string to uicolor
Rtx3080ti and rtx3080 gap 3080 and 3080ti parameter comparison
基金开户网上办理是否安全?谁给解答一下
Tell you Web3.0 I understand
Detailed explanation of knapsack problem
ThreadLocal interview Kills 11 consecutive questions
OKRK3399開發板預留I2C4掛載EEPROM
Spotlight light box JS plug-in full screen enlarged picture
How many processors is Tianji 720 equivalent to Xiaolong? How about Tianji 720 equivalent to Xiaolong
104 二叉树的最大深度 和 543 二叉树的直径和 124 二叉树的最大路径和
Ffmpeg 1 - Overview / installation
c语言实现strcmp、strstr、strcat、strcpy
JS software unloading prompt expression changes with the mouse JS special effect
Canvas from getting started to persuading friends to give up (graphic version)
Day108. Shang Yitong: interface docking of hospital simulation system - query of hospital | Department | shift scheduling, addition, deletion, modification and paging conditions
FFmpeg 1 - 概览/安装
npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.


