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

C++实现的小游戏

大家好,这几天做项目太忙,时间不够去更新,十分抱歉。今天凌晨花了半个点的时间写了一个小游戏的青春版,给大家分享。

游戏名:想玩电脑?先过我这关!

首先我先来说明一下游戏的规则:我们用C++写了一个0~100的随机数,用户有五次机会可以猜数字,猜对了就可以玩电脑,猜错了电脑就会关机(当然你要赋予它一定的权限,才可以达到关机的目的,不然的话就会显示关机失败)

代码演示:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <limits>using namespace std;int main() {srand(static_cast<unsigned int>(time(nullptr))); // 初始化随机数生成器int secretNumber = rand() % 100 + 1; // 生成1到100之间的随机数int guess;const int maxAttempts = 5; // 最大猜测次数cout << "欢迎来到猜数字游戏!" << endl;cout << "规则:你只有五次机会猜一个1到100之间的数字。" << endl;cout << "如果猜对了,你可以继续使用电脑;如果五次都猜错,电脑会尝试关机。" << endl;for (int attempts = 0; attempts < maxAttempts; ++attempts) {cout << "尝试次数 " << (attempts + 1) << "/" << maxAttempts << ":" << endl;cout << "请输入你的猜测(1-100):";// 清除输入缓冲区并获取用户输入cin.clear();cin.ignore(numeric_limits<streamsize>::max(), '\n');cin >> guess;// 输入验证while (cin.fail() || guess < 1 || guess > 100) {cout << "无效输入!请输入一个1到100之间的整数:" << endl;cin.clear();cin.ignore(numeric_limits<streamsize>::max(), '\n');cin >> guess;}if (guess < secretNumber) {cout << "太小了!请再试一次。" << endl;} else if (guess > secretNumber) {cout << "太大了!请再试一次。" << endl;} else {cout << "恭喜你,你猜对了数字 " << secretNumber << "!" << endl;cout << "你可以继续使用电脑了。" << endl;return 0; // 猜对后退出程序}}// 如果五次都猜错,尝试关闭电脑cout << "很遗憾,你没有在五次机会内猜到数字。" << endl;cout << "电脑即将尝试关机..." << endl;// 在Windows系统上执行关机命令(需要管理员权限)// 如果不是Windows系统或者没有权限,此命令可能无效或被拒绝int shutdownResult = system("shutdown /s /t 5"); // 5秒后关机,以便用户保存工作if (shutdownResult == 0) {cout << "关机命令已发送,请保存你的工作!" << endl;} else {cout << "关机命令执行失败,可能是权限不足。" << endl;}// 等待用户按下任意键退出(在关机前给用户一个保存工作的机会)cout << "按任意键退出游戏..." << endl;cin.ignore(numeric_limits<streamsize>::max(), '\n');cin.get();return 0;
}

上面的代码和注释写的十分清楚,看过前几次题目的长代码,相信大家可以看的懂。这段代码只是最简单的部分,大家可以自己添加想要加入的功能,自己设计游戏规则和惩罚。这段代码的演示只是一个黑框框,我昨晚的时间有限,只能写成这个游戏的air版。有能力的同学可以将其完善,做一个精美的ui,完整的封装,写成一个pro版,这样才是一个真正的代码实现。

好的感谢大家的阅读,求一个赞。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • watch和computed的使用及区别
  • Unity3D 小案例 像素贪吃蛇 02 蛇的觅食
  • 数据增强又突破了!升级版“双杀”两大顶会,实现无痛涨点
  • Mybatis批量操作
  • CISP备考题库(八)
  • JavaScript match() 方法
  • 如何在Android上实现RTSP服务器
  • 【案例71】配置https之后 IE打不开登陆页面 Uclient没有问题
  • JS日期转化指定格式,获取月/周日期区间
  • Spring Boot入门:构建你的首个Spring Boot应用
  • Laya2.x出包alipay小游戏
  • 数据恢复免费版工具大比拼,哪款才是你的“救星”?
  • Linux运维篇-tigervnc工具的使用
  • 机器学习特征-学习篇
  • rtems 5.3 qemu realview_pbx_a9 环境搭建:生成 rtems arm 工具链
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • C学习-枚举(九)
  • ES6之路之模块详解
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • PAT A1092
  • PHP CLI应用的调试原理
  • Unix命令
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 构建二叉树进行数值数组的去重及优化
  • 判断客户端类型,Android,iOS,PC
  • 使用SAX解析XML
  • 通过git安装npm私有模块
  • 小程序01:wepy框架整合iview webapp UI
  • 小试R空间处理新库sf
  • 学习Vue.js的五个小例子
  • 一、python与pycharm的安装
  • UI设计初学者应该如何入门?
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • #pragma pack(1)
  • #pragma 指令
  • %@ page import=%的用法
  • (1)bark-ml
  • (1)STL算法之遍历容器
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4.10~4.16)
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (备忘)Java Map 遍历
  • (不用互三)AI绘画工具应该如何选择
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • ***利用Ms05002溢出找“肉鸡
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .naturalWidth 和naturalHeight属性,
  • .net core 6 集成和使用 mongodb
  • .NET Core 发展历程和版本迭代
  • .NET Windows:删除文件夹后立即判断,有可能依然存在