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

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版,这样才是一个真正的代码实现。

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


http://www.kler.cn/a/311304.html

相关文章:

  • 河南省的一级科技查新机构有哪些?
  • 网络安全-Linux基础(bash脚本)
  • 【MySQL】数据库知识突破:数据类型全解析与详解
  • 快速学习Serde包实现rust对象序列化
  • 游戏引擎学习第五天
  • Android S长按文件或视频或编辑中文字或输入框中文字不会弹出分享菜单
  • 关于Element-ui中el-table出现的表格错位问题解决
  • 启发式生成最佳轨迹ReGentS:超32个智能体生成现实世界的安全关键驾驶场景
  • 数据库(DB、DBMS、SQL)
  • 中关村科金推出得助音视频鸿蒙SDK,助力金融业务系统鸿蒙化提速
  • 蓝桥杯1.确定字符串是否包含唯一字符
  • VS Code远程连接虚拟机
  • 如何用站群服务器做抢购秒杀平台
  • Linux6-vi/vim
  • 使用稀疏和低秩分解的汉克尔结构矩阵进行脉冲噪声去除
  • UE5源码Windows编译、运行
  • 内存管理(C++版)
  • Python | Leetcode Python题解之第401题二进制手表
  • uni-app生命周期
  • Java 23 的12 个新特性!!
  • 攻防世界-Web题目2(弱比较、php伪协议)
  • Python 数学建模——高斯核密度估计
  • MVP 最简可行产品
  • 【深度智能】:迈向高级时代的人工智能全景指南
  • 数字世界的新秩序:探索Web3的前景
  • WPF颜色(SolidColorBrush)和Win32颜色(COLOREF)互转的方法