【c++小游戏】Surviving版本v0.1.1

ops/2024/10/25 4:21:44/

 规则在最后

//#include<graphics.h>
//#include<windows.h>
#include<unistd.h>
#include<time.h>
#include<iostream>
#include<fstream>
using namespace std;
#define attt 0
#define food 1
#define M 2
#define home 0
#define jungle 1
#define river 2
#define smalltown 3
short ssaw,day=1,ti,a1=0,a2=0,a3=0;//季节,天数,时间
short jt,jwf,rt,rw,tw2,tp;//森林树木,森林浆果,溪流树木,溪流净水,小镇麦子,小镇零件
struct obj{int cl;//类string name="";//名int a=0,b=0,c=0;/*cl=attt a=att b=durable耐久 c=digv挖掘速度cl=food a=+nhungry b=+water c=+confidencecl=M材料 a=数量 b,c无用*/
};
obj ax,dagger,wood,berry,water,wheat,parts;//斧头,短匕,木头,水,麦子,零件
void set(){ax.cl=attt;ax.name="斧头";ax.a=5,ax.b=30,ax.c=0;dagger.cl=attt;dagger.name="短匕";dagger.a=7,dagger.b=35,ax.c=0;wood.cl=M;wood.name="木头";berry.cl=food;berry.name="浆果";berry.a=1,berry.b=4,berry.c=2;water.cl=food;water.name="水";water.a=0,water.b=10,water.c=1;wheat.cl=food;wheat.name="麦子";wheat.a=5,wheat.b=0,water.c=0;parts.cl=M;parts.name="零件";
}
struct people{short hp,nhungry,water,energy,confidence;//血量,满腹,水分,体力,精神short location=0;//位置obj bag[20];
}me;
void dd(){fstream of("cd.f",ios::out);of<<me.hp<<" "<<me.nhungry<<" "<<me.water<<" "<<me.energy<<" "<<me.confidence<<" ";of<<ssaw<<" "<<day<<" "<<ti<<" "<<a1<<" "<<a2<<" "<<a3;of.close();of.open("cdb.f",ios::out);for(int i=0;i<20;i++){if(me.bag[i].name!="")of<<me.bag[i].cl<<" "<<me.bag[i].name<<" "<<me.bag[i].a<<" "<<me.bag[i].b<<" "<<me.bag[i].c<<" ";}of.close();of.open("ms.f",ios::out);of<<jt<<" "<<jwf<<" "<<rt<<" "<<rw<<" "<<tw2<<" "<<tp;
}
void cd(){fstream of("cd.f",ios::in);of>>me.hp>>me.nhungry>>me.water>>me.energy>>me.confidence>>ssaw>>day>>ti>>a1>>a2>>a3;of.close();of.open("cdb.f",ios::in);for(int i=0;i<20;i++){of>>me.bag[i].cl>>me.bag[i].name>>me.bag[i].a>>me.bag[i].b>>me.bag[i].c;}if(!a2||a3)me.location=0;else{system("cls");cout<<"\033[31m你在清晨的月光中醒来,你不知道自己在这待了千年还是一日。\033[30m\n";system("pause");system("cls");me.location=-1;}of.close();of.open("ms.f",ios::in);of>>jt>>jwf>>rt>>rw>>tw2>>tp;
}
int sgo(){int yi=0;cout<<"0.反回\n";cout<<"1.森林\n";cout<<"2.溪流\n";if(a1){}cin>>yi;system("cls");switch(yi){case 0:return 1;break;case 1:me.location=jungle;break;case 2:me.location=river;break;default://TODObreak;}return 0;
}
int fvt=0;
int fv(string a=""){short ret=20;bool ist=0;for(int i=0;i<20;i++){if(me.bag[i].name==a){if(!ist)ret=i;fvt++;}}return ret;
}
void eat(){system("cls");cout<<"背包:";for(int i=0;i<20;i++){if(me.bag[i].name!="")cout<<i<<":";cout<<me.bag[i].name;if(me.bag[i].name!=""){switch(me.bag[i].cl){case attt:cout<<me.bag[i].b;break;case M:cout<<"*"<<me.bag[i].a;break;default://TODObreak;}cout<<" ";}}cout<<endl;cout<<"你要吃什么?(-1返回)\n";short i;cin>>i;if(i<=-1)return;if(me.bag[i].cl==food&&me.bag[i].name!=""){me.bag[i].name="";me.nhungry+=me.bag[i].a;me.water+=me.bag[i].b;me.confidence+=me.bag[i].c;cout<<"满腹+"<<me.bag[i].a;cout<<"水分+"<<me.bag[i].b;cout<<"精神+"<<me.bag[i].c;}else{switch(rand()%3){case 0:cout<<"谢邀,你吃吧...\n";break;case 1:cout<<"这能吃吗?\n";break;case 2:cout<<"我略感满腹...\n";break;default:break;}}sleep(1);system("cls");
}
void game(){short yi=0;while(me.hp>0){begin:switch(ssaw%4){case 0:cout<<"春 ";break;case 1:cout<<"夏 ";break;case 2:cout<<"秋 ";break;case 3:cout<<"冬 ";break;}cout<<"第"<<day<<"天 ";switch(ti/3){case 0:case 1:cout<<"凌晨";break;case 2:case 3:case 4:cout<<"早上";break;case 5:case 6:cout<<"中午";break;case 7:case 8:cout<<"下午";break;case 9:cout<<"傍晚";break;case 10:case 11:case 12:cout<<"晚上";break;}cout<<endl;cout<<"血量:"<<me.hp<<" ";cout<<"满腹:"<<me.nhungry<<" ";cout<<"水分:"<<me.water<<" ";cout<<"体力:"<<me.energy<<" ";cout<<"精神:"<<me.confidence<<" ";cout<<"地点:";switch(me.location){case -1:cout<<"\033[31m诅咒之地\033[30m";break;case 0:cout<<"家";break;case 1:cout<<"森林";break;case 2:cout<<"江河";break;case 3:cout<<"小镇";break;default://TODObreak;}cout<<endl;cout<<"背包:";for(int i=0;i<20;i++){cout<<me.bag[i].name;if(me.bag[i].name!=""){switch(me.bag[i].cl){case attt:cout<<me.bag[i].b;break;case M:cout<<"*"<<me.bag[i].a;break;default://TODObreak;}cout<<" ";}}cout<<endl;for(int i=0;i<120;i++)cout<<"-";cout<<endl;cout<<"你的操作\n";if(me.location==home){cout<<"-1.吃东西\n";cout<<"0.保存";cout<<"1.出门";cout<<"2.建造";cout<<"\n";cin>>yi;system("cls");switch(yi){case -1:eat();goto begin;break;case 1:if(sgo()){system("cls");goto begin;}break;case 2:break;default:dd();exit(0);break;}}elseif(me.location==jungle){cout<<"-1.吃东西\n";cout<<"0.返回\n";cout<<"1.伐木 现有木:"<<jt<<" 需:斧头*1,精力*5,2时间\n";cout<<"2.采集浆果 现有:"<<jwf<<" 需:精力*2,1时间\n";cout<<"3.流浪汉 \"救我...\" 对话\n";cin>>yi;system("cls");switch(yi){case -1:eat();goto begin;break;case 1:{if(jt)jt-=1;else goto begin;bool nhave=1,ne=0;for(int i=0;i<20;i++){if(me.bag[i].name=="斧头"&&me.bag[i].b>=1){if(me.energy>=5){me.bag[i].b-=1;if(me.bag[i].b==0){me.bag[i].name="";}bool a2=1;for(int i=0;i<20;i++)if(me.bag[i].name==wood.name){me.bag[i].a+=4;a2=0;break;}if(a2){int a=fv();me.bag[a]=wood;me.bag[a].a=4;}cout<<"挖掘成功!\nMining successful!\n";me.energy-=5;ti+=1;sleep(1);system("cls");}else ne=1;nhave=0;break;}}if(nhave)cout<<"我没有工具。\nI have no tools.\n";else if(ne)cout<<"好累...\nI am very tired...\n";if(ne||nhave){sleep(1);system("cls");goto begin;}}break;case 2:{if(jwf>=1&&me.energy>=2){jwf--;me.energy-=2;cout<<"挖掘成功!\nMining successful!\n";for(int i=0;i<4;i++)me.bag[fv()]=berry;}else{if(jwf<1){cout<<"哪里?\nWhere?\n";}else cout<<"好累...\nI am very tired...\n";sleep(1);system("cls");goto begin;}sleep(1);system("cls");}break;case 3:system("cls");cout<<"流浪汉:我想要8个浆果。\nI want 8 berries.\n(1给,0不给)\n";cin>>yi;if(yi==0){system("cls");goto begin;}else if(fv("浆果"),fvt>=8){for(int i=0;i<8;i++){me.bag[fv("浆果")].name="";}cout<<"流浪汉:谢谢你好心人。\n";if(!a1){a1=1;cout<<"你解锁了新地图。\n";}}else{system("cls");goto begin;}sleep(1);system("cls");fvt=0;break;default:me.location=home;break;}}elseif(me.location==river){cout<<"-1.吃东西\n";cout<<"0.返回\n";cout<<"1.伐木 现有木:"<<rt<<" 需:斧头*1,精力*5,2时间\n";cout<<"2.采集水 现有:"<<rw<<" 需:精力*2,1时间\n";cout<<"3.老者 \"救我...\" 对话\n";cin>>yi;system("cls");switch(yi){case -1:eat();goto begin;break;case 1:{if(rt)rt-=1;else goto begin;bool nhave=1,ne=0;for(int i=0;i<20;i++){if(me.bag[i].name=="斧头"&&me.bag[i].b>=1){if(me.energy>=5){me.bag[i].b-=1;if(me.bag[i].b==0){me.bag[i].name="";}bool a2=1;for(int i=0;i<20;i++)if(me.bag[i].name==wood.name){me.bag[i].a+=4;a2=0;break;}if(a2){int a=fv();me.bag[a]=wood;me.bag[a].a=4;}cout<<"挖掘成功!\nMining successful!\n";me.energy-=5;ti+=1;sleep(1);system("cls");}else ne=1;nhave=0;break;}}if(nhave)cout<<"我没有工具。\nI have no tools.\n";else if(ne)cout<<"好累...\nI am very tired...\n";if(ne||nhave){sleep(1);system("cls");goto begin;}}break;case 2:{if(rw>=1&&me.energy>=2){rw--;me.energy-=2;cout<<"挖掘成功!\nMining successful!\n";me.bag[fv()]=water;}else{if(rw<1){cout<<"哪里?\nWhere?\n";}else cout<<"好累...\nI am very tired...\n";sleep(1);system("cls");goto begin;}sleep(1);system("cls");}break;case 3:system("cls");cout<<"老者:我好渴,我想要1些水。\nI am very thirsty.I want thirk some water.\n(1给,0不给)\n";cin>>yi;if(yi==0){system("cls");goto begin;}else if(fv("水"),fvt>=1){me.bag[fv("水")].name="";cout<<"老者:谢谢你好心人。\n";if(!a2&&ssaw!=0){a2=1;cout<<"老者给了你一把武器:诡异的长刀\n";cout<<"长刀散发出一种怪异、令人不适的气息\n";cout<<"这是一把非法武器,上面带着诅咒\n";cout<<"你感到头晕目眩,你来到了诅咒之地\n";me.location=-1;short a=fv();me.bag[a].name="诡秘长刀";me.bag[a].a=10,me.bag[a].b=32,me.bag[a].c=0;}}else{system("cls");goto begin;}sleep(5);system("cls");fvt=0;break;default:me.location=home;break;}}elseif(me.location==smalltown){cout<<"-1.吃东西\n";cout<<"0.返回\n";cout<<"1.采集小麦 现有木:"<<rt<<" 需:精力*2,1时间\n";cout<<"2.采集零件 现有:"<<rw<<" 需:精力*2,1时间\n";cin>>yi;system("cls");switch(yi){case -1:eat();goto begin;break;case 1:{if(tw2>=1&&me.energy>=2){tw2--;me.energy-=2;cout<<"挖掘成功!\nMining successful!\n";for(int i=0;i<3;i++)me.bag[fv()]=wheat;}else{if(tw2<1){cout<<"哪里?\nWhere?\n";}else cout<<"好累...\nI am very tired...\n";sleep(1);system("cls");goto begin;}sleep(1);system("cls");}break;case 2:{if(tp>=1&&me.energy>=2){tp--;me.energy-=2;bool a2=1;for(int i=0;i<20;i++)if(me.bag[i].name==parts.name){me.bag[i].a+=3;a2=0;break;}if(a2){int a=fv();me.bag[a]=parts;me.bag[a].a=3;}cout<<"挖掘成功!\nMining successful!\n";}else{if(tp<1){cout<<"哪里?\nWhere?\n";}else cout<<"好累...\nI am very tired...\n";sleep(1);system("cls");goto begin;}sleep(1);system("cls");}break;default:me.location=home;break;}}elseif(me.location==-1){cout<<"-1.吃东西\n";cout<<"0.返回\n";for(int i=0;i<120;i++)cout<<"-";cout<<"\n\033[31m这里很怪异,你在这没有感觉到饥饿和口渴,\
经管如此,你还是因为周围怪异的气氛感到后背阴凉。\033[30m\n";cin>>yi;switch(yi){case 1://TODObreak;case 2://TODObreak;default://TODObreak;}system("cls");}if(ti/39){ti-=39;day+=1;if(day/91){day-=90;ssaw+=1;}}if(me.location!=-1){ti+=1;me.nhungry-=((rand()%3)>=1?1:2);if(me.nhungry<0){me.nhungry=0;me.hp-=((rand()%3)>=1?1:2);}if(me.nhungry<=20){me.confidence-=7;}else if(me.nhungry<=50){me.confidence-=3;}me.water-=((rand()%3)>=1?1:2);if(me.water<0){me.water=0;me.hp-=((rand()%3)>=1?1:2);}if(me.water<=20){me.confidence-=10;}else if(me.water<=50){me.confidence-=5;}if((ti==38)&&me.location!=home){me.confidence-=7;}if(me.confidence<0){me.confidence=0;}me.energy-=(!(rand()%4));}else me.confidence-=(!(rand()%4));}dd();cout<<"You die!\n";system("pause");
}
int main(){system("color f0");set();srand(time(0));int yi;cout<<"输入任意开始\n";cin>>yi;bool i=1;if(yi==309){fstream of("cd.f",ios::out);of<<"100 100 100 100 100 0 1 0 0 0 0";of.close();of.open("cdb.f",ios::out);of<<"0 斧头 5 30 0 ";of.close();of.open("ms.f",ios::out);of<<"10 18 10 15 15 18";of.close();cd();}elseif(yi==419){cd();i=0;system("color 0f");system("cls");cout<<"开发者模式\n";cout<<"-2://set:a2\n-1://set:a1\n0://exit\n1://set:hp\n2://set:nhungry\n3://set:water\n4://set:energy\n5://set:confidence\n6://set:ti\n7://set:jt\n8://set:jwf\n9://set:tw2\n10://set:tp\n";int bf,bh;while(1){cin>>bf>>bh;switch(bf){case -2://set:a2a2=bh;break;case -1://set:a1a1=bh;break;case 0://exitgoto a;break;case 1://set:hpme.hp=bh;break;case 2://set:nhungryme.nhungry=bh;break;case 3://set:waterme.water=bh;break;case 4://set:energyme.energy=bh;break;case 5://set:confidenceme.confidence=bh;break;case 6://set:titi=bh;break;case 7://set:jtjt=bh;break;case 8://set:jwfjwf=bh;break;case 9://set:tw2tw2=bh;break;case 10://set:tptp=bh;break;default://TODObreak;}}}a:if(i)cd();system("color 4c");sleep(1);system("color 08");sleep(1);system("color f0");system("cls");game();
}
/*
case -1:eat();goto begin;break;
*/

帮助
-----------------------------------
v0.1.0 2024年10月4日 14:55:35
进入:
输入任意数字进入游戏,输入309重开(创造新存档)
机制:
血量:归0时死亡
满腹/水分:归0时扣血,会随时间降低
体力:干事情时消耗
精神:在属性低时/在外过夜时消耗,会影响伤害和爆率
注:满腹/水分是随机降低的,体力有概率随时间降低
背包:
一共有20格,只有材料可以堆叠,武器显示耐久
地点:
新增小溪,未完善
玩法:
活下去,
物品(官方)
斧头,短匕,魔刀(测试使用,已删除),木头
-----------------------------------
v0.1.1
eat:
在显示时间的界面输入-1,会出现吃的界面
(提示:吃一些怪怪的东西,会有彩蛋,比方斧头?)

地点:

新增许多


http://www.ppmy.cn/ops/128236.html

相关文章

docker desktop

配置镜像源 image.png 镜像源不定时会失效 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://docker.registry.cyou&q…

JavaWeb合集22-Apache POI

二十二、Apache POI Apache POI是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用POI在Java 序中对Miscrosoft Office各种文件进行读写操作。一般情况下&#xff0c;POI都是用于操作Excel文件。 使用场景&#xff1a;银行网银系统导出…

wordpress伪静态规则

WordPress 伪静态规则是指将 WordPress 生成的动态 URL 转换为静态 URL 的规则&#xff0c;这样做可以提高网站的搜索引擎优化(SEO)效果&#xff0c;并且使得 URL 更加美观、易于记忆。伪静态规则通常需要在服务器的配置文件中设置&#xff0c;不同的服务器环境配置方法有所不同…

9-单引号和双引号的区别在PHP

单引号和双引号的区别 在PHP中&#xff0c;单引号&#xff08;&#xff09;和双引号&#xff08;"&#xff09;的主要区别在于它们对字符串内容的解析和处理方式。 1. 字符串解析 单引号&#xff1a;在单引号内&#xff0c;字符串的内容不会被解析&#xff0c;所有字符都…

Spring--1

spring是一个轻量级的&#xff0c;采用IOC与AOP编程思想的java后端开发框架&#xff0c;简化了企业级的应用开发。 Spring体系 数据访问层&#xff0c;Web层&#xff0c;配置中心&#xff0c;测试区 IOC 控制反转&#xff0c;将创建对象的控制权交由Spring框架&#xff0c;需…

2019年计算机网络408真题解析

第一题&#xff1a; 解析&#xff1a;OSI参考模型第5层完成的功能 首先&#xff0c;我们需要对OSI参考模型很熟悉&#xff1a;从下到上依次是&#xff1a;物理层-数据链路层-网络层- 运输层-会话层-表示层-应用层&#xff0c;由此可知&#xff0c;题目要问的是会话层的主要功能…

记录一次部署 k8s 集群无法启动

情况是这样的&#xff0c;k8s 集群&#xff08;v1.31&#xff09;所需要的组件已安装完成&#xff0c;通过 kubeadm init 已经安装部署成功&#xff0c;但是等几分钟&#xff0c;集群组件就一直在重启&#xff0c;查看日志是连接 etcd 超时&#xff0c;所以查看了 etcd 的日志&…

OpenIPC开源FPV之Ardupilot配置

OpenIPC开源FPV之Ardupilot配置 1. 源由2. 问题3. 分析3.1 MAVLINK_MSG_ID_RAW_IMU3.2 MAVLINK_MSG_ID_SYS_STATUS3.3 MAVLINK_MSG_ID_BATTERY_STATUS3.4 MAVLINK_MSG_ID_RC_CHANNELS_RAW3.5 MAVLINK_MSG_ID_GPS_RAW_INT3.6 MAVLINK_MSG_ID_VFR_HUD3.7 MAVLINK_MSG_ID_GLOBAL_P…