当前位置: 首页 > news >正文

C语言随机数小游戏

目录

前言

一、游戏要求:

二、游戏实现

1.游戏界面

2.游戏主体

3.主函数 

4.运行结果:

总结


前言

前面我们学到了C语言随机数的相关知识,我们今天用这个知识做一个有趣的小游戏,会有一点函数的知识,不过后面会讲;

一、游戏要求:

1. 电脑⾃动⽣成1~100的随机数;
2. 玩家猜数字,猜数字的过程中,根据猜测数据的⼤⼩给出⼤了或⼩了的反馈,直到猜对,游戏结束。

二、游戏实现

1.游戏界面

我们可以用printf()来实现游戏界面的打印:

void menu()
{printf("***********************\n");printf("********1.play*********\n");printf("********0.exit*********\n");printf("***********************\n");
}

2.游戏主体

我们可以在函数里加入一个变量count来限制我们输入的次数;

void game()
{int r = rand() % 100 +1;int guess = 0;int count = 5;while (count){printf("\n你还有%d次机会\n", count);printf("请输入数字》:");scanf("%d", &guess);if (guess < r){printf("猜小了\n");}else if (guess > r){printf("猜大了\n");}else{printf("恭喜了,猜中了\n");break;}count--;}if (count == 0){printf("你失败了,正确值是:%d\n", r);}
}

3.主函数 

考虑到我们要先打印菜单,在等待用户选择,所以我们这里使用do while语句:

int main()
{int input = 0;srand((unsigned int)time(NULL));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;
}

4.代码示例:

void menu()
{printf("***********************\n");printf("********1.play*********\n");printf("********0.exit*********\n");printf("***********************\n");
}void game()
{int r = rand() % 100 +1;int guess = 0;int count = 5;while (count){printf("\n你还有%d次机会\n", count);printf("请输入数字》:");scanf("%d", &guess);if (guess < r){printf("猜小了\n");}else if (guess > r){printf("猜大了\n");}else{printf("恭喜了,猜中了\n");break;}count--;}if (count == 0){printf("你失败了,正确值是:%d\n", r);}
}int main()
{int input = 0;srand((unsigned int)time(NULL));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;
}

4.运行结果:


总结

这章我结合了上一章的随机数知识,制作出了一个小游戏,我觉得,学习中也可以找到乐趣,不只是孩子,我们每个人都应如此;夏日炎炎,只为考研。

http://www.lryc.cn/news/418795.html

相关文章:

  • 解决Ubuntu报“无法解析域名cn.archive.ubuntu.com“问题
  • 搭建pxe网络安装环境实现服务器自动部署
  • Go框架选战:Gin、Echo、Fiber的终极较量
  • 2024.8.08(python)
  • RabbitMQ知识总结(基本原理+高级特性)
  • 字符串切割split
  • Python中的 `continue` 语句:掌握循环控制的艺术
  • AI安全新纪元:智能体驱动的网络安全新范式
  • c语言学习,isascii()函数分析
  • DAMA学习笔记(十二)-数据质量
  • 查找项目中丢失脚本的物体
  • 支付宝开放平台竟出现一张神秘人脸!
  • 每日学术速递8.8
  • 【JVM基础12】——垃圾回收-说一下JVM有哪些垃圾回收器?
  • 进阶学习------linux运维读写执行权限
  • 视频循环存储的实现
  • 在centOS系统中使用docker部署Jenkins
  • Qt 将生成的exe文件自动复制到其它目录下
  • openwrt下,用iptable转发端口访问远程的SMB服务
  • JVM类加载中的双亲委派机制
  • 【OpenCV C++20 学习笔记】范围阈值操作
  • 【Material-UI】Checkbox组件:Indeterminate状态详解
  • 一文了解K8S(Kubernates)
  • 三星、小米和 OPPO设备实验室将采用Android设备流技术
  • 华为OD-D卷万能字符单词拼写
  • 顶象文字点选模型识别
  • C#如何将自己封装的nuget包引入到项目中
  • 数据结构(学习)2024.8.8(栈,队列)
  • 服务端开发常用知识(持续更新中)
  • MySQL入门学习-运维与架构.复制过滤器