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.运行结果:
总结
这章我结合了上一章的随机数知识,制作出了一个小游戏,我觉得,学习中也可以找到乐趣,不只是孩子,我们每个人都应如此;夏日炎炎,只为考研。
相关文章:

C语言随机数小游戏
目录 前言 一、游戏要求: 二、游戏实现 1.游戏界面 2.游戏主体 3.主函数 4.运行结果: 总结 前言 前面我们学到了C语言随机数的相关知识,我们今天用这个知识做一个有趣的小游戏,会有一点函数的知识,不过后面会…...

解决Ubuntu报“无法解析域名cn.archive.ubuntu.com“问题
今天在Ubuntu系统上,使用sudo apt update命令,进行更新时,弹出"无法解析域名 cn.archive.ubuntu.com"问题,如图(1)所示: 图(1) 弹出"无法解析域名 cn.archive.ubuntu.com" 错误 出现这种现象的原因…...

搭建pxe网络安装环境实现服务器自动部署
目录 配置 kickstart自动安装脚本 搭建dhcp服务 搭建pxe网络安装环境实现服务器自动部署 测试 配置 kickstart自动安装脚本 yum install system-config-kickstart #在rhel7做,rhel9要收费 system-config-kickstart #启动图形制作工具 vim …...

Go框架选战:Gin、Echo、Fiber的终极较量
Gin 优点: 高性能: 优化以处理高并发和低延迟请求。易于上手: 对于熟悉 Go 的开发者来说,API 设计直观,学习曲线低。社区支持强: 广泛使用,有大量第三方中间件和教程。 缺点: 相比于其他框架如 Echo,Gin缺乏内置的验证支持Gin…...

2024.8.08(python)
一、搭建python环境 1、检查是否安装python [rootpython ~]# yum list installed | grep python [rootpython ~]# yum list | grep python3 2、安装python3 [rootpython ~]# yum -y install python3 安装3.12可以使用源码安装 3、查看版本信息 [rootpython ~]# python3 --vers…...

RabbitMQ知识总结(基本原理+高级特性)
文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 基本原理 消息的可靠性投递 RabbitMQ 消息的投递路径为ÿ…...

字符串切割split
let obj {} let str "aa占比:17.48%,aa计费占比:0.00%" let arr str.split(,) // [aa占比:17.48%,aa计费占比:0.00%] arr.forEach(item > { let [key,value] item.split(:) obj[key] value }) console.log(obj) //{aa占比: 17.48%, aa计费占比: 0.00%} con…...

Python中的 `continue` 语句:掌握循环控制的艺术
Python中的 continue 语句:掌握循环控制的艺术 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通…...

AI安全新纪元:智能体驱动的网络安全新范式
近日,ISC.AI 2024第十二届互联网安全大会在北京盛大开幕。本次大会以"打造安全大模型,引领安全行业革命"为主题,旨在呼吁行业以大模型重塑安全体系,以保障数字经济的稳健发展。 在企业安全运营与策略实践论坛上&#x…...

c语言学习,isascii()函数分析
1:isascii() 函数说明: 检查参数c,是不是ASCI码字符 2:函数原型: int isascii(int c) 3:函数参数: 参数c,为检测ASCI码 4:返回值: 参数c为ASCII码字符&…...

DAMA学习笔记(十二)-数据质量
1.引言 数据管理能力包括为各类应用设计数据模型、安全存储和访问数据、适当地共享数据、从数据中获得知识,以及保障满足业务需求的能力等。但实现数据价值的前提是数据本身是可靠和可信的,换句话说,数据应是高质量的。 导致低质量数据产生的…...
查找项目中丢失脚本的物体
直接上代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using System.IO;namespace SimpleFrame.Tool {public class MissingScriptsToolWindow : EditorWindow{[MenuItem("工具/丢失脚本的物体列表")]pu…...

支付宝开放平台竟出现一张神秘人脸!
前言 我因一个单子来到支付宝开放平台来。在将其加入书签的时候,我发现出现了个神秘的人脸 一张笑容明媚的脸,就是出现的时候不太对 正常的收藏网址 应该是显示对应log 就不继续找相关例子了 添加书签的页面,本该出现log的地方缺出现了…...

每日学术速递8.8
1.Rethinking temporal self-similarity for repetitive action counting 标题:重新思考重复动作计数的时间自相似性 作者: Yanan Luo, Jinhui Yi, Yazan Abu Farha, Moritz Wolter, Juergen Gall 文章链接:https://arxiv.org/abs/2407.09…...

【JVM基础12】——垃圾回收-说一下JVM有哪些垃圾回收器?
目录 1- 引言:垃圾回收器2- ⭐核心:垃圾回收器详解2-1 串行垃圾回收器2-2 并行垃圾回收器2-3 CMS(并发垃圾回收)——主要作用在老年代 3- 小结3-1 说一下JVM有哪些垃圾回收器? 1- 引言:垃圾回收器 在 JVM …...

进阶学习------linux运维读写执行权限
进阶学习------linux运维读写执行权限 在UNIX和类UNIX操作系统中,文件权限是通过一组特定的数字来表示的,这些数字分为三组,分别对应于用户(文件所有者)、组和其他用户的权限。每组权限由三个二进制位表示,…...

视频循环存储的实现
目录 1. 三方工具 2. 视频存储的实现 2.1 分段存储 - 比如每15分钟 2.2 对齐到15分钟整边界 2.3 循环存储的实现 video_space_daemon.sh 3.封装 3.1 主执行程序,修订版 3.2 创建服务 3.3 service关联的执行脚本文件 4.额外的工作 附录A: ffmpeg视频存储…...

在centOS系统中使用docker部署Jenkins
1. 安装docker 1.1 下载Docker依赖组件 yum -y install yum-utils device-mapper-persistent-data lvm2 1.2 设置下载Docker的镜像源为阿里云 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 1.3 安装Docker服务 yum …...
Qt 将生成的exe文件自动复制到其它目录下
QT pro中加入文件拷贝方法_qt pro复制粘贴-CSDN博客 目标: 例如:在release模式下,exe文件生成于: "G:\test\build\release\shakeSensor.exe" 此时,我希望在生成该exe文件时, "G:\test\…...
openwrt下,用iptable转发端口访问远程的SMB服务
首先初步学习一下iptales的命令 iptales指令的详细教程:https://blog.csdn.net/weixin_44390164/article/details/120500075 实践一、转发地址与端口 外网远程服务上开放了SMB服务,端口号自定义的为44513,WINDOWS不能直接访问,…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...

02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...