C++实现的小游戏

news2024/9/20 5:09:34

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

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

首先我先来说明一下游戏的规则:我们用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.coloradmin.cn/o/2147957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构——二叉树堆的专题

1.堆的概念及结构 如果有一个关键码的集合K {K0 &#xff0c;K1 &#xff0c;K2 &#xff0c;K3…&#xff0c;K(N-1) }&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中&#xff0c;并满足&#xff1a;Ki < K2*i1且 Ki<K2*i2 ) i 0&#…

Java语言程序设计基础篇_编程练习题**18.30 (找出单词)

题目&#xff1a;**18.30 (找出单词) 编写一个程序&#xff0c;递归地找出某个目录下的所有文件中某个单词出现的次数。从命令行如下传递参数&#xff1a; java Exercise18_30 dirName word 习题思路 &#xff08;读取路径方法&#xff09;和18.28题差不多&#xff0c;把找…

电子元件制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

5G智能工厂与物联数字孪生平台的融合应用&#xff0c;不仅为电容器制造业注入了新的活力&#xff0c;更为整个制造业的数字化转型树立了新的标杆。电子元件制造过程中&#xff0c;数字孪生平台通过实时监测生产线的各个环节&#xff0c;实现了生产流程的可视化监控。管理人员可…

vue中的slot插槽,彻底搞懂及使用

1、使用slot站位&#xff0c;不传内容&#xff0c;显示默认值 //父组件 import SlotChild from ./projectConstruction-child/SlotChild.vue <div><SlotChild></SlotChild> </div>//子组件 <template><div>下面是插槽内容</div><…

【爆炸】BB机,BP机,寻呼系统基础知识,物理层讲解

本页介绍寻呼系统基础知识。其中提到了寻呼机使用的数字协议并描述了数字寻呼接收器。 寻呼是一种单向通信系统。寻呼系统向携带小型电池供电设备&#xff08;称为寻呼机&#xff09;的个人广播信号或消息。这是与员工和/或客户沟通的非常重要的方式。让我们看看寻呼系统的工作…

新发布的OpenAI o1生成式AI模型在强化学习方面迈出了重要的一步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Xv6驱动(四):CLINT

阅读材料 Xv6代码&#xff1a;memlayout.h、start.c、kernelvec.S教材5.4节 CLINT内存映射 实际上&#xff0c;CLINT还包括若干个MSIP寄存器&#xff0c;用来触发软件中断&#xff0c;但是在Xv6中不考虑软件中断&#xff0c;因此这些寄存器也不用考虑 // core local interr…

python 运行其他命令行工具,实时打印输出内容

起因&#xff0c; 目的: python 运行一个命令&#xff0c;最简洁的写法是: import os # 转换视频格式。 cmd "ffmpeg -i a1.ts -c copy a1.mp4"os.system(cmd)问题&#xff1a; 如果上面的视频比较大&#xff0c;需要运行很长时间&#xff0c;那么感觉就像是卡住…

C# 访问Access存取图片

图片存入ole字段&#xff0c;看有的代码是获取图片的字节数组转换为base64字符串&#xff0c;存入数据库&#xff1b;显示图片是把base64字符串转换为字节数组再显示&#xff1b;直接存字节数组可能还好一点&#xff1b; 插入的时候用带参数的sql写法比较好&#xff1b;用拼接…

InternVL 微调实践闯关任务

基础任务 follow 教学文档和视频使用QLoRA进行微调模型&#xff0c;复现微调效果&#xff0c;并能成功讲出梗图. 尝试使用LoRA&#xff0c;或调整xtuner的config&#xff0c;如LoRA rank&#xff0c;学习率。看模型Loss会如何变化&#xff0c;并记录调整后效果(选做&#xff…

十、数字人IP应用方案

1、背景 在当今的数字时代,随着AI技术的突飞猛进,数字人AI已经从概念走向应用,成为知识内容创作领域一股不可忽视的力量。它的出现,在很大程度上极大地提高了内容的生产效率,大有替代知识IP,成为内容IP终结者的趋势。 数字人IP,从形象到声音,与知识博主真人的相似度可…

初中生物--7.生物圈中的绿色植物(二)

绿色植物与生物圈的水循环 1.植物对水分的吸收和运输 1.植物主要通过根吸收水分。根吸收水分的主要部位是根尖的成熟区。 2.外界溶液浓度<根毛细胞溶液浓度→细胞吸水&#xff1b; 1.在这种情况下&#xff0c;根毛细胞内的溶液浓度高于外界溶液&#xff0c;因此细胞内的…

蓝星多面体foc旋钮键盘复刻问题详解

介绍&#xff1a; 本教程是针对立创开源项目 承载我所有幻想的键盘 - 立创开源硬件平台 作者是 蓝星多面体 这里我总结一下我复刻过程中的一些问题 一 <<编译环境怎么搭建&#xff1f;>> 第一步 安装vscode 下载vscode &#xff08;可以在各大应用平台…

R语言中的shiny框架

R语言中的shiny框架 Shiny 的基本概念基本用法示例常见用法示例1. 输入控件2. 输出控件3. 动态 UI4. 数据传递和反应式编程 高级功能1. 使用 shinyjs2. 使用 shinythemes Shiny 是一个 R 语言的框架&#xff0c;用于构建交互式的网页应用&#xff0c;可以让用户以最少的 HTML、…

飞驰云联FTP替代方案:安全高效文件传输的新选择

FTP协议广泛应用各行业的文件传输场景中&#xff0c;由于FTP应用获取门槛低、使用普遍&#xff0c;因此大部分企业都习惯使用FTP进行文件传输。然而面临激增的数据量和网络安全威胁的不断演变&#xff0c;FTP在传输安全性与传输性能上有所欠缺&#xff0c;无法满足企业现在的高…

2024java面试-软实力篇

为什么说简历很重要&#xff1f; 一份好的简历可以在整个申请面试以及面试过程中起到非常好的作用。 在不夸大自己能力的情 况 下&#xff0c;写出一份好的简历也是一项很棒的能力。为什么说简历很重要呢&#xff1f; 、 先从面试来说 假如你是网申&#xff0c;你的简历必然…

Windows本地pycharm使用远程服务器conda虚拟环境

1、Windows下载pycharm专业版&#xff0c;必须是专业版&#xff0c;不然连不了远程服务器。 Download PyCharm: The Python IDE for data science and web development by JetBrains 2、添加远程服务器的虚拟环境&#xff0c;在pycharm右下角落选择 添加新的解释器>>SSH。…

计算机网络33——文件系统

1、chmod 2、chown 需要有root权限 3、link 链接 4、unlink 创建临时文件&#xff0c;用于非正常退出 5、vi vi可以打开文件夹 ../是向外一个文件夹 6、ls ls 可以加很多路径&#xff0c;路径可以是文件夹&#xff0c;也可以是文件 ---------------------------------…

【Java】并发集合

并发集合&#xff08;java.util.concurrent&#xff09; 一、List CopyOnWriteArrayList&#xff08;ReentrantLock实现线程安全&#xff09; &#xff08;1&#xff09;并发修改&#xff08;写操作&#xff09;时保证线程安全&#xff1a; 通过ReentrantLock实现多个线程并…

Solidwork角度尺寸标注

效果如下&#xff1a; 首先&#xff0c; 先选第一条边 然后选第二条边&#xff0c;即可