C++实现的小游戏

news/2024/9/19 19:15:20 标签: 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.niftyadmin.cn/n/5666018.html

相关文章

腾讯音乐2024 Q2财报稳中有进,首席执行官梁柱(Ross Liang)强调平台创新

8 月 13 日&#xff0c;腾讯音乐娱乐集团&#xff08;Tencent Music Entertainment Group&#xff0c;以下简称“TME”&#xff09;发布 2024 年第二季度财报。本季度集团各项核心财务指标稳健增长&#xff0c;总收入达 71.6 亿元&#xff0c;调整后净利润 19.9 亿元&#xff0…

架构师论文备考-论云原生架构及其应用

摘要 2022年3月&#xff0c;我有幸参与了公司的新智慧公交系统的研发工作。该系统基于B/S架构设计&#xff0c;并以多租户SaaS平台化为发展目标&#xff0c;旨在创建一个功能更全面、性能更卓越、稳定性更强、用户体验更佳的公交调度一体化平台。在这一项目中&#xff0c;我主要…

推荐给大家5款小众无广告的软件

​ 你是否喜欢一些小众且无广告的软件&#xff1f;如果是的话&#xff0c;我这边有一些给你推荐的。 1.进程管理——ProcessExplorer ​ ProcessExplorer是一款高级系统进程管理工具&#xff0c;可实时查看Windows系统中所有正在运行的进程及其详细信息。它提供了比任务管理器…

规律题总结(持续更新)

题目链接&#xff1a;5.煎蛋的梦想 - 蓝桥云课 (lanqiao.cn) #include <iostream> #include <algorithm> using namespace std; int n,k,sum0; bool fun(int x) {for(int i2; i<(int)sqrt(x); i){if(x%i0){return false;break;}}return true; } int main() {ci…

Flash扩展——NOR Flash、NAND Flash 和 SD NAND

Flash扩展——NOR Flash、NAND Flash 和 SD NAND 文章目录 Flash扩展——NOR Flash、NAND Flash 和 SD NAND闪存&#xff08;Flash Memory&#xff09;**非易失性原理**NAND Flash 和 NOR Flash 对比 NOR FlashNAND Flash NAND分类——SLC、MLC、TLC和QLCNAND擦除&#xff08;E…

米客方德SD NAND 掉电测试

SD NAND 异常上下电测试的作用 SD NAND 异常上下电测试是一项关键的测试步骤&#xff0c;对确保SD NAND在不同电源条件下的稳定性和可靠性至关重要。 通过模拟正常和异常电源情况&#xff0c;测试可以验证设备的电源管理功能、检测潜在错误和异常行为&#xff0c;并评估设备在…

【模板进阶】模板的万能引用

一、类型的区别和基本定义 1.1类型的基本定义 首先先看一个最简单例子&#xff1a; //类型的区别和基本定义 void func(const int& abc) { } //abc的类型为const int&这里的 a b c abc abc被推导为什么类型&#xff1f; 显然可见&#xff0c;为 c o n s t i n t &am…

面向切面:单元测试、事务、资源操作

目录 一、单元测试二、事务2.1、概述2.1.1、编程式事务2.1.2、声明式事务 2.2、JdbcTemplate2.3、基于注解的声明式事务2.3.1、基本用例-实现注解式的声明事务2.3.2、事务属性&#xff1a;只读2.3.3、事务属性&#xff1a;超时2.3.4、事务属性&#xff1a;回滚策略2.3.5、事务属…