以小说《三体》为背景的C++版分支选项小游戏(修改版)

如题,最近迷上了小说《三体》,就迷迷糊糊地做了这么一个简单至极的小游戏,当然对于学过C++的大神们来说不用运行就知道分支结果了。。。。。

#include <iostream>
using namespace std;
int main()
{
    int ichoice;
    cout <<"欢迎进入小游戏!\n";
    cout <<"请输入0(代表赞同)或1(代表否定)来进行选择分支,你的选择关乎地球的命运!\n";
    cout <<"叶文洁通过即将通过太阳发射信号,请问是否阻止?";
    cin >>ichoice;
    if(ichoice==0) cout <<"信号未发送,三体未发现地球文明,保卫地球成功!Happy end";
    else cout <<"信号发送,三体发现地球,地球处于危险之中!\n";
    cout <<"但你还有机会,罗辑的面壁人计划差一票通过,请问是否支持?";
    cin >>ichoice;
    if(ichoice==0) cout <<"已向另一恒星发射咒语,黑暗森林理论被证实,三体开始惧怕地球,地球获得安宁。Good end";
    else cout <<"黑暗森林理论未被证实,三体舰队接近地球!\n";
    cout <<"只剩最后一次机会,由你来操作“万有引力”舰船,是否发射引力波?";
    cin >>ichoice;
    if(ichoice==0) cout <<"三体位置暴露,三体舰队撤离,但地球也暴露在黑暗森林中,平静的日子不会长久。Bad end";
    else cout <<"地球人引爆了水星,发生连锁反应,太阳系被太阳吞噬!。Dead end";
    return 0;

}


当然构思的码字都是自己做的,代码的分量也全在这上面了。。。。。。


贺老师说代码要缩进,但这是用codeblock缩进后的效果。。。。想了想还是自己太依赖软件了,用一下source code formatter就了事,与教科书上的很不一致,于是就自己修改了一下

#include <iostream>
using namespace std;
int main()
{
    int ichoice;
    cout <<"欢迎进入小游戏!\n";
    cout <<"请输入0(代表赞同)或1(代表否定)来进行选择分支,你的选择关乎地球的命运!\n";
    cout <<"叶文洁通过即将通过太阳发射信号,请问是否阻止?";
    cin >>ichoice;
    if(ichoice==0) cout <<"信号未发送,三体未发现地球文明,保卫地球成功!Happy end";
       else cout <<"信号发送,三体发现地球,地球处于危险之中!\n";
            cout <<"但你还有机会,罗辑的面壁人计划差一票通过,请问是否支持?";
    cin >>ichoice;
    if(ichoice==0) cout <<"已向另一恒星发射咒语,黑暗森林理论被证实,三体开始惧怕地球,地球获得安宁。Good end";
       else cout <<"黑暗森林理论未被证实,三体舰队接近地球!\n";
            cout <<"只剩最后一次机会,由你来操作“万有引力”舰船,是否发射引力波?";
    cin >>ichoice;
    if(ichoice==0) cout <<"三体位置暴露,三体舰队撤离,但地球也暴露在黑暗森林中,平静的日子不会长久。Bad end";
       else cout <<"地球人引爆了水星,发生连锁反应,太阳系被太阳吞噬!。Dead end";
    return 0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
1、打开已有的一组三体配置文件(.tbc)并运行(点击播放按钮)。 "File"菜单下有导入(Import)、导出(Export)功能,在不能上传附件时方便以纯文本方式交流自己搜索出来的三体配置! 2、手工设定初始条件的全部数值(点击魔术棍按钮)。分别指定三个物体的初始条件(X、Y、Z坐标,质量,初始速度的幅度、在XY平面上的角度0~360、在XZ平面上的角度0~360)。四个圆形选项(Radio Button)是参照系选择:默认的"Normalize to Centroid"是按三体系统质心作为参照系进行速度平衡,相当于观察者总是跟随三体的质心运动。另外三个选项分别是以第一、二、三个天体作为参照系,即总是把这个天体放在中心位置从不移动--注意这是非惯性参照系!(一般应选取行星主要围绕的那个恒星,方便观察行星轨道) 如果XZ平面上的初始速度角度都是0,则退化为二维的三体。 不过手工设定的条件通常都很难稳定运行。 3、设定搜索条件,让软件自动搜索。搜索分为两步: 3.1、搜索稳定的三体解(点击望远镜按钮) 第一部分是每个物体的约束条件:坐标最大值、最小质量、最大质量、最小速度幅度、最大速度幅度。 第二部分是是否要求三体在最初N步里超出一个边长为M的方框范围。这样看起来比较有趣,但搜索起来可能很慢。 第三部分是三体必须在N步里不超出一个边长为M的方框范围。否则它们很快发散就不好玩了。 然后那个复选框是:是否只进行二维搜索。 搜索结束后会出现一组初始条件值,点OK就开始运行了。 3.2、在三体解的基础上,搜索稳定的行星解(点击右下有小球的望远镜按钮) 手工设定或者自动搜索出来的解,如果喜欢的话,可以存盘,也可以导出为纯文本贴在论坛上与大家共享。压缩包里的.tbc也是偶自己用这个软件搜出来的。 四个播放按钮: 第一个播放形状的,是开始或者继续运行; 第二个暂停形状的,是暂停; 第三个短箭头,是减速运行; 第三个双箭头,是加速运行。 速度有很多档次,从减速6倍到加速运行100倍,直到加速100倍跳3125帧(相当于加倍312500倍,但每隔3125帧才显示一帧,所以看起来很不连续),每5倍为一个档次。
EasyX是一个轻量级的C++游戏开发框架,它简化了游戏图形编程,特别是2D图形的处理。如果你用EasyX做三体运动(通常指的是模拟经典物理中的三体问题),你可以按照以下步骤进行: 1. **安装和设置EasyX**: 首先,确保你已经下载并包含了EasyX库到你的C++项目中。如果你还没有安装,可以从其官网下载源码或者集成开发环境(IDE)插件。 2. **创建场景和物体**: 创建一个窗口,并使用EasyX的`Scene`类来管理你的场景。为每个三体创建一个或多个`Object`对象,它们将代表星体。 3. **定义三体模型**: 设定每个星体的质量、位置和速度。三体问题通常涉及到三个星体,可以设定两个作为大质量的恒星(比如太阳),第三个作为小质量的行星或彗星。 4. **计算运动**: 使用牛顿运动定律,特别是万有引力定律,来计算星体之间的相互作用力。EasyX可能没有内置的物理引擎,但你可以手动实现这些计算。 5. **更新和绘制**: 在每一帧游戏中,根据上一帧的运动状态,更新星体的位置和速度。然后调用`Scene`的`draw()`方法来渲染它们。 6. **动画循环**: 使用游戏循环,不断重复上述步骤(更新、计算和绘制),使星体看起来在运动。 相关问题-- 1. EasyX如何处理游戏对象的移动和位置更新? 2. 如何在EasyX中模拟星体间的引力相互作用? 3. 如何在EasyX中实现一个基本的动画循环来显示三体运动?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值