首页 > 编程语言 >C++实现的小游戏

C++实现的小游戏

时间:2024-09-18 12:20:06浏览次数:12  
标签:guess cout 实现 cin C++ int 小游戏 100 include

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

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

首先我先来说明一下游戏的规则:我们用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版,这样才是一个真正的代码实现。

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

标签:guess,cout,实现,cin,C++,int,小游戏,100,include
From: https://blog.csdn.net/2301_81280642/article/details/142329811

相关文章

  • python定时发送邮件的功能如何实现自动化?
    Python定时发送邮件教程?如何用Python发送电子邮件?Python定时发送邮件不仅能够帮助我们自动处理日常的邮件发送任务,还能在特定时间点触发邮件发送,确保信息的及时传达。AokSend将详细探讨如何利用Python实现定时发送邮件的自动化功能。python定时发送邮件:配置服务可以使用Gma......
  • 最优化理论与自动驾驶(十一):基于iLQR的自动驾驶轨迹跟踪算法(c++和python版本)
    最优化理论与自动驾驶(四):iLQR原理、公式及代码演示之前的章节我们介绍过,iLQR(迭代线性二次调节器)是一种用于求解非线性系统最优控制最优控制最优控制和规划问题的算法。本章节介绍采用iLQR算法对设定的自动驾驶轨迹进行跟踪,与第十章节纯跟踪算法采用同样跟踪轨迹,同时,我们仅对控......
  • 基于微信小程序的校园外卖平台设计与实现-计算机毕业设计源码+LW文档
    校园外卖平台设计与实现摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了校园外卖平台的开发全过程。通过分析校园外卖平台管理的不足,创建了一个计算机管理校园外卖平台的方案。文章介绍了校园外卖平台的系统分析部分,包括可行性......
  • 9章11节:用R实现区组随机化和置换区组随机化
    区组随机化是一种常用的随机化方法,尤其适用于临床试验设计中。它的主要优势是能够在治疗组间保持样本量的一致性,并在不同组之间均衡混杂因素。然而,这种方法也有其固有的缺点,如研究者在未设盲的情况下,可能对研究对象的分配产生预测,导致选择偏倚。为了解决这一问题,置换区组随机......
  • 基于SpringBoot+vue的校园消费点评系统设计与实现
    文章目录1.前言2.详细视频演示3.论文参考4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.可行性分析7.系统测试7.1系统测试的目的7.2系统功能测试8.数据库表设计9.代码参考10.数据库脚本11.作者推荐项目12.为什么选择我?13.获取源......
  • 基于Java的面向社区的智能化健康管理系统设计与实现
    文章目录1.前言2.详细视频演示3.论文参考4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.可行性分析7.系统测试7.1系统测试的目的7.2系统功能测试8.数据库表设计9.代码参考10.数据库脚本11.作者推荐项目12.为什么选择我?13.获取源......
  • 240908-结合DBGPT与Ollama实现RAG本地知识检索增强
    A.最终效果B.背景说明DBGPT在0.5.6版本中开始支持Ollama:v0.5.6版本更新网友对其Web端及界面端的设置进行了分享:feat(model):supportollamaasanoptionalllm&embeddingproxybyGITHUBear·PullRequest#1475·eosphoros-ai/DB-GPTDB-GPT+Ollama构建本地智能数据平......
  • 9章10节:用R实现分层随机化
    在临床试验和其他科学研究中,随机化是一种常见的分配方法,用于将研究对象随机分配到不同的处理组或对照组。这有助于消除潜在的混杂因素,确保研究结果的公正性。然而,在某些情况下,已知的协变量(如年龄、性别、疾病严重程度)可能对结果有显著影响。如果不加以控制,这些协变量可能会导......
  • 【计算机毕设-大数据方向】基于大数据的健康美食可视化系统设计与实现
    ......
  • C++_指针的超详细讲解,带你层层深入理解指针
    C++ 指针学习C++的指针既简单又有趣。通过指针,可以简化一些C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的C++程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号......