社区讨论
求助《管理员:秘境》
灌水区参与者 6已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @lo9cgota
- 此快照首次捕获于
- 2023/10/28 09:09 2 年前
- 此快照最后确认于
- 2023/10/28 09:09 2 年前
这个小游戏是不是没有做完啊?现在有完整版吗?
CPP#include<bits/stdc++.h>
#include<windows.h>
#include<cstdio>
#include <time.h>
#include<iostream>
#include<conio.h>
#define HD 30
using namespace std;
int hp=100,bsd=100,water=100,nl=100;
bool han=0;//是否有东西拿在手里
// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
string name[100]={"0","木条","木板","石头","碎石","平滑石","捕鱼笼","捕兽夹","苹果","浆果","毛皮","生肉","熟肉","木桶","装有水的木桶","船","火把","藤蔓","弓","石剑","地图碎片","地图","磁石","指南针","石斧","生鱼","熟鱼","金币","铁锭","金锭","茅草"};
int hand[100];
int num[100];
/////////////////////////
int pasture;//是否探索到打草场 1探索到了 0没有探索到
int pasture_time=10;
int YNpasture;//pasture_time:草的状态pasture_time>=10时草成熟 YNpasture:草是否种植1种植了0没种植
/////////////////////////
int animal;//是否探索到野兽小径 1探索到了 0没有探索到
/////////////////////////
int berry;//是否探索到浆果地 1探索到了 0没有探索到
int berry_time=10;
int YNberry;//berry_time:浆果的状态berry_time>=10时浆果成熟 YNberry:浆果是否种植1种植了0没种植
/////////////////////////
int brook;//是否探索到小溪 1探索到了 0没探索到
int fcageplace;//捕鱼笼数量(已放置)
int acageplace;//捕兽夹数量(已放置)
int YNcatchfish;//是否捕到鱼(大于等于10时,每个捕鱼笼有几率获得3~6条鱼)
int YNcatchanimal;//是否捕到野兽(大于等于20时,每个捕鱼笼有几率获得3~5块肉)
/////////////////////////
int fire=0;//火焰旺度,0为没有火焰
int YNrainy;//是否下雨
int YNenergy=1;//这一步是否消耗能量
int YNfloorwet=0;//地面是否为湿(可用茅草吸干)
string sj;
/////////////////////////
void print(char a[]);
void juqin();
void login();
void home();
void bag();
void table();
void gotable();
void goberry();
void gopasture();
void gobrook();
void goanimal();
//////////////////////////
int main(){
// for(int i=1;i<=HD;i++) hand[i]=100;
// han=1;
// berry=brook=animal=pasture=1;
srand(time(NULL));
system("color 0E");
system("MODE CON COLS=30 LINES=10");
srand(time(NULL));
system("title 秘境");
cout<<"剧情?输入1:\n";
int t;
cin>>t;
if(t==1)juqin();
system("cls");
print(" 秘境");
print("诚享传奇出品");
system("pause");
system("cls");
print("陈程,段鉴泽出品");
system("pause");
system("MODE CON COLS=60 LINES=40");
system("MODE code=10");
home();
return 0;
}
void print(char a[]){
for(int i=0;i<strlen(a);i++){
Sleep(10);
cout<<a[i];
}
cout<<endl;
}
void home(){
int time=0;//当前时间
while(1){
YNenergy=0;
if(time%24==0){
int YNrainyrand=rand()%4+1;
if(YNrainyrand==1) YNfloorwet=YNrainy=1;
else YNfloorwet=YNrainy=0;
}
system("cls");
cout<<"现在是";
if((time/12)%2==0)cout<<"白天";
else cout<<"黑夜";
if(YNrainy==1) cout<<"/雨天";
else cout<<"/晴天";
cout<<"/"<<time%24<<"时";
if((time%24)/4==0) cout<<"/清晨"<<endl;
if((time%24)/4==1) cout<<"/中午"<<endl;
if((time%24)/4==2) cout<<"/黄昏"<<endl;
if((time%24)/4==3) cout<<"/傍晚"<<endl;
if((time%24)/4==4) cout<<"/午夜"<<endl;
if((time%24)/4==5 || (time%24)/4==6) cout<<"/凌晨"<<endl;
cout<<"这是你被困在这里的第"<<time/24+1<<"天......"<<endl;
time++;
cout<<"-------------------------------------------"<<endl;
cout<<"血量:"<<hp<<" "<<"饱食度:"<<bsd<<" "<<"口渴度:"<<water<<" "<<"耐力:"<<nl<<endl;
if(berry_time>=10 && berry==1) cout<<"浆果已成熟!"<<endl;
if(YNcatchfish>=10 && brook==1) cout<<"捕鱼笼已捕到鱼!"<<endl;
if(YNcatchanimal>=20 && animal==1) cout<<"捕兽夹已捕到猎物!"<<endl;
if(pasture_time>=10 && pasture==1) cout<<"可以打草!"<<endl;
if(YNfloorwet==1){
fire=0;
cout<<"在陆地上生不了火(收集20个茅草以吸干雨水)"<<endl;
}
if(fire>1) cout<<"火堆熊熊燃烧"<<endl;
if(fire==1) cout<<"火堆燃烧着"<<endl;
if(bsd<=50) cout<<"你感到很饿"<<endl;
if(water<=50)cout<<"你感到很渴"<<endl;
if(nl<=50) cout<<"你感到你需要休息一下"<<endl;
cout<<"-------------------------------------------"<<endl;
int sjnum;
if((rand()%7+1)==1){
if(hand[1]>=10){
sjnum=rand()%8+1;
cout<<"一只猴子从你的手中拿走了"<<sjnum<<"根木条"<<endl;
hand[1]-=sjnum;
}else if(hand[3]>=8){
sjnum=rand()%4+1;
cout<<"一只猴子从你的手中拿走了"<<sjnum<<"个石头"<<endl;
hand[3]-=sjnum;
}else if(hand[11]>=5){
sjnum=rand()%3+1;
cout<<"一条狗从你的手中叼走了"<<sjnum<<"块生肉"<<endl;
hand[11]-=sjnum;
}else if(hand[9]>=7){
sjnum=rand()%4+1;
cout<<"一条狐狸从你的手中衔走了"<<sjnum<<"个浆果"<<endl;
hand[9]-=sjnum;
}else if(hand[25]>=5){
sjnum=rand()%3+1;
cout<<"一只猫从你的手中叼走了"<<sjnum<<"条鱼"<<endl;
hand[25]-=sjnum;
}else{
cout<<"无事件发生"<<endl;
}
}else{
cout<<"无事件发生"<<endl;
}
if(han){
cout<<"-------------------------------------------"<<endl;
printf("你拿出了:\n");
for(int i=1;i<=HD;i++){
if(hand[i]>0) cout<<name[i]<<"X"<<hand[i]<<" ";
}
cout<<endl;
}
cout<<"-------------------------------------------"<<endl;
cout<<"游戏选项:"<<endl;
if(han) cout<<"1 放回背包"<<endl;
cout<<"2 背包"<<endl;
if(nl>=15) cout<<"3 收集"<<endl;
if(nl>=10) cout<<"4 探索"<<endl;
cout<<"5 休息"<<endl;
if((time/12)%2!=0 && fire) cout<<"6 睡觉"<<endl;
cout<<"7 查看合成表"<<endl;
if(nl>=10 && hand[1]>=8 && fire==0 && YNfloorwet==0) cout<<"8 钻木取火"<<endl;
if(hand[1]>=2 && fire && YNfloorwet==0) cout<<"9 加柴火"<<endl;
if(hand[3]>=1 && nl>=10) cout<<"10 将石头摔成碎石"<<endl;
if(nl>=5 && brook) cout<<"11 前往小溪"<<endl;
if(nl>=5 && berry) cout<<"12 前往浆果地"<<endl;
cout<<"13 前往合成"<<endl;
if(hand[3]>=1 && fire) cout<<"14 将石头烤成平滑石"<<endl;
if(hand[9]>=1) cout<<"15 食用浆果"<<endl;
if(hand[25]>=1 && fire) cout<<"16 将生鱼烤成熟鱼"<<endl;
if(hand[26]>=1) cout<<"17 吃熟鱼"<<endl;
if(hand[12]>=15 && hand[16]>=50 && nl>=30) cout<<"18 挖矿(花费15块熟肉,50根火把)"<<endl;
if(animal==1 && nl>=5) cout<<"19 前往野兽小径"<<endl;
if(hand[11]>=1 && fire) cout<<"20 将生肉烤成熟肉"<<endl;
if(hand[12]>=1) cout<<"21 吃熟肉"<<endl;
if(hand[1]>=10 && fire) cout<<"22 点燃10根木条做成2根火把"<<endl;
if(nl>=5 && pasture) cout<<"23 前往打草场"<<endl;
if(hand[30]>=20 && nl>=5 && YNfloorwet==1) cout<<"24 吸干雨水"<<endl;
int t;
cin>>t;
if(t==1 && han){
for(int i=1;i<=HD;i++) num[i]+=hand[i],hand[i]=0;
han=0;
}else if(t==2){
bag();
}else if(t==3 && nl>=15){
system("cls");
print("你到森林里收集了一点木条和石头");
num[1]+=rand()%10+1;
num[3]+=rand()%3+2;
nl-=15;
YNenergy=1;
system("pause");
}else if(t==4 && nl>=10){
system("cls");
int YNtsrand=rand()%4+1;
if(YNtsrand==1){
int tsrand=rand()%4+1;
if(tsrand==1 && berry==0){
print("你发现了一片浆果地");
berry=1;
system("pause");
}else if(tsrand==2 && brook==0){
print("你发现了一条小溪");
brook=1;
system("pause");
}else if(tsrand==3 && animal==0){
print("你发现了一条野兽小径");
animal=1;
system("pause");
}else if(tsrand==4 && pasture==0){
print("你发现了一个打草场");
pasture=1;
system("pause");
}
}else{
print("你什么也没探索到");
system("pause");
}
nl-=10;
YNenergy=1;
}else if(t==5){
system("cls");
cout<<"休息中"<<endl;
Sleep(1500);
cout<<"耐力+5"<<endl;
nl+=5;
if(nl>=100) nl=100;
system("pause");
}else if(t==6 && (time/12)%2!=0 && fire){
system("cls");
cout<<"z";
Sleep(1000);
cout<<"z";
Sleep(1000);
cout<<"z";
Sleep(1000);
system("cls");
cout<<"z";
Sleep(1000);
cout<<"z";
Sleep(1000);
cout<<"z";
Sleep(1000);
time=0;
nl=100;
}else if(t==7){
table();
}else if(t==8 && nl>=10 && hand[1]>=8 && fire==0 && YNfloorwet==0){
nl-=10;
system("cls");
hand[1]-=8;
fire++;
print("火堆燃烧起来了");
YNenergy=1;
system("pause");
}else if(t==9 && hand[1]>=2 && fire && YNfloorwet==0){
system("cls");
hand[1]-=2;
fire++;
print("火堆熊熊燃烧");
system("pause");
}else if(t==10 && hand[3]>=1 && nl>=10){
nl-=10;
hand[3]--;
hand[4]+=rand()%3+1;
YNenergy=1;
}else if(t==11 && nl>=5 && brook){
gobrook();
nl-=5;
YNenergy=1;
}else if(t==12 && nl>=5 && berry){
goberry();
nl-=5;
YNenergy=1;
}else if(t==13){
gotable();
}else if(t==14 && hand[3]>=1 && fire){
system("cls");
print("烧烤中");
Sleep(3000);
hand[3]--;
hand[5]++;
}else if(t==15 && hand[9]>=1){
hand[9]--;
water+=5;
bsd+=5;
if(water>100) water=100;
if(bsd>100) bsd=100;
}else if(t==16 && hand[25]>=1 && fire){
system("cls");
print("烧烤中");
Sleep(3000);
hand[25]--;
hand[26]++;
}else if(t==17 && hand[26]>=1){
hand[26]--;
bsd+=8;
if(bsd>=100) bsd=100;
}else if(t==18 && hand[12]>=15 && hand[16]>=50 && nl>=30){
hand[12]-=15;
hand[16]-=50;
nl-=30;
system("cls");
print("挖掘中");
Sleep(5000);
hand[28]+=rand()%10+5;
hand[29]+=rand()%5+3;
}else if(t==19 && animal && nl>=5){
goanimal();
nl-=5;
YNenergy=1;
}else if(t==20 && hand[11]>=1 && fire){
system("cls");
print("烧烤中");
Sleep(3000);
hand[11]--;
hand[12]++;
}else if(t==21 && hand[12]>=1){
hand[12]--;
bsd+=12;
if(bsd>=100) bsd=100;
}else if(t==22 && hand[1]>=10 && fire){
system("cls");
print("点燃中");
Sleep(1500);
hand[16]+=2;
hand[1]-=10;
}else if(t==23 && nl>=5 && pasture){
gopasture();
nl-=5;
YNenergy=1;
}else if(t==24 && nl>=5 && hand[30]>=20 && YNfloorwet==1){
nl-=5;
hand[30]-=30;
YNfloorwet=0;
YNenergy=1;
}
if(fcageplace>0) YNcatchfish++;
if(acageplace>0) YNcatchanimal++;
if(YNberry==1) berry_time++;
if(YNpasture==1) pasture_time++;
if(YNenergy==1) bsd--,water--;
han=0;for(int i=1;i<=HD;i++){if(hand[i]!=0){han=1;break;}}
if(hp<=0||bsd<=0||water<=0)break;
}
if(hp<=0||bsd<=0||water<=0){
system("cls");
print("你死了......");
Sleep(3000);
print("我就说没有人能活下来,呵呵......");
Sleep(3000);
system("cls");
print("GAME OVER");
Sleep(5000);
return;
}else{
system("cls");
print("你居然活了下来,呵呵......");
Sleep(3000);
system("cls");
print("GAME OVER");
Sleep(5000);
}
mama:exit(0);
}
void bag(){
system("cls");
while(1){
system("cls");
cout<<"0 返回|g a b 丢弃编号为a的物品b件|p a b拿出编号为a的物品b件"<<endl;
for(int i=1;i<=HD;i++){
if(num[i]==0)continue;
cout<<i<<":"<<name[i]<<"X"<<num[i]<<" ";
if(i%4==0)cout<<endl;
}
cout<<endl;
char a[2];
scanf("%s",a);
if(a[0]=='0')return;
else if(a[0]=='g'){
int x,y;
scanf("%d%d",&x,&y);
if(num[x]>=y)num[x]-=y;
}
else{
han=1;
int x,y;
scanf("%d%d",&x,&y);
if(num[x]>=y){
hand[x]+=y;
num[x]-=y;
}
}
}
login();
}
void juqin(){
system("cls");
print("冒险者站在夕阳下");
Sleep(1000);
print("他知道");
Sleep(1000);
print("这不是他的传说");
Sleep(1000);
system("cls");
print("没人离开过这里......");
Sleep(1000);
print("我这是在哪儿?");
Sleep(1000);
print("一阵头痛袭来");
Sleep(1000);
print("我好像,什么也不记得了......");
Sleep(1000);
system("cls");
Sleep(1000);
}
void table(){
system("cls");
print("20个木条 5个平滑石 10个碎石 3个浆果 5个石头 合成 捕兽夹");
print("15个木条 3个石头 3个平滑石 2个浆果 20个碎石 合成 捕鱼笼");
print("3个平滑石 10个木条 合成 石斧");
print("15个石头 5个平滑石 10根木条 合成 石剑");
system("pause");
}
void gobrook(){
system("cls");
printf("哗哗哗");
Sleep(1000);
while(1){
system("cls");
print("0 返回");
print("1. 喝水(回复10口渴度)");
if(hand[6]>=1 && fcageplace<10) print("2 放置捕鱼笼");
if(fcageplace>=1 && YNcatchfish>=10) print("3 查看捕鱼笼");
///////////////////////////////////////
int brookt;
scanf("%d",&brookt);
if(brookt==0){
return;
}
if(brookt==1){
system("cls");
printf("咕嘟嘟");
Sleep(5000);
water+=10;
if(water>100){
system("cls");
printf("口渴度满了\n");
water=100;
system("pause");
}
}
//////////////////////////
if(brookt==2){
system("cls");
if(hand[6]>=1 && fcageplace<10){
hand[6]--;
fcageplace++;
}else if(hand[6]<1){
system("cls");
print("你还没有捕鱼笼!");
system("pause");
}else if(fcageplace==10){
system("cls");
print("捕鱼笼已满!");
system("pause");
}
}
if(brookt==3){
system("cls");
if(fcageplace>=1 && YNcatchfish>=10){
hand[25]+=fcageplace*(rand()%2+1);
YNcatchfish=0;
}else if(fcageplace<1){
system("cls");
print("你还未放置捕鱼笼!");
system("pause");
}else if(YNcatchfish<10){
system("cls");
print("捕鱼笼没有捕到东西!");
system("pause");
}
}
}
}
void gotable(){
while(1){
system("cls");
print("0. 返回");
if(hand[1]>=20 && hand[5]>=5 && hand[4]>=10 && hand[9]>=3 && hand[3]>=5){
print("1. 合成捕兽夹");
}
if(hand[1]>=15 && hand[3]>=3 && hand[5]>=3 && hand[9]>=2 && hand[4]>=20){
print("2. 合成捕鱼笼");
}
if(hand[1]>=10 && hand[5]>=3){
print("3. 合成石斧");
}
if(hand[3]>=15 && hand[5]>=5 && hand[1]>=10){
print("4. 合成石剑");
}
int tablet;
scanf("%d",&tablet);
if(tablet==0){
return;
}if(tablet==1){
if(hand[1]>=20 && hand[5]>=5 && hand[4]>=10 && hand[9]>=3 && hand[3]>=5){
hand[1]-=20;
hand[5]-=5;
hand[4]-=10;
hand[9]-=3;
hand[3]-=5;
hand[7]++;
}else if(hand[1]<15 || hand[3]<3 || hand[5]<3 || hand[9]<2 || hand[4]<20){
system("cls");
print("材料不足!");
system("pause");
}
}
if(tablet==2){
if(hand[1]>=15 && hand[3]>=3 && hand[5]>=3 && hand[9]>=2 && hand[4]>=20){
hand[1]-=15;
hand[3]-=3;
hand[5]-=3;
hand[9]-=2;
hand[4]-=20;
hand[6]++;
}else if(hand[1]<20 || hand[5]<5 || hand[4]<10 || hand[9]<3 || hand[3]<5){
system("cls");
print("材料不足!");
system("pause");
}
}
if(tablet==3){
if(hand[1]>=10 && hand[5]>=3){
hand[1]-=10;
hand[5]-=3;
hand[24]++;
}else if(hand[1]<10 || hand[5]<3){
system("cls");
print("材料不足!");
system("pause");
}
}
if(tablet==4){
if(hand[3]>=15 && hand[5]>=5 && hand[1]>=10){
hand[1]-=10;
hand[5]-=5;
hand[3]-=15;
hand[19]++;
}else if(hand[1]<15 || hand[5]<5 || hand[1]<10){
system("cls");
print("材料不足!");
system("pause");
}
}
}
}
void gopasture(){
while(1){
system("cls");
print("0 返回");
if(pasture_time>=10) print("1. 打草");
if(YNpasture==0 && hand[30]>=5) print("2 种草(花费5个茅草)");
int pasturet;
scanf("%d",&pasturet);
if(pasturet==0){
return;
}
if(pasturet==1){
if(pasturet==1 && pasture_time>=10){
hand[30]+=rand()%4+10;
han=1;
YNpasture=0;
pasture_time=0;
}else{
system("cls");
print("已经打过草了!");
system("pause");
}
}else if(pasturet==2){
if(pasturet==2 && YNpasture==0 && hand[30]>=5){
YNpasture=1;
hand[30]-=5;
}else if(YNpasture==1){
system("cls");
print("草已经种植过了!");
system("pause");
}else if(hand[30]<5){
print("茅草不够!");
}
}
}
}
void goberry(){
while(1){
system("cls");
print("0 返回");
if(berry_time>=10) print("1. 采集浆果");
if(YNberry==0 && hand[9]>=5) print("2 种植浆果(花费5个浆果)");
int berryt;
scanf("%d",&berryt);
if(berryt==0){
return;
}
if(berryt==1){
if(berryt==1 && berry_time>=10){
hand[9]+=rand()%4+7;
han=1;
YNberry=0;
berry_time=0;
}else{
system("cls");
print("浆果地已经采集过了!");
system("pause");
}
}else if(berryt==2){
if(berryt==2 && YNberry==0 && hand[9]>=5){
YNberry=1;
hand[9]-=5;
}else if(YNberry==1){
system("cls");
print("浆果地已经种植过了!");
system("pause");
}else if(hand[9]<5){
print("浆果不够!");
}
}
}
}
void goanimal(){
while(1){
system("cls");
print("0 返回");
if(hand[7]>=1 && acageplace<10) print("1 放置捕兽夹");
if(acageplace>=1 && YNcatchanimal>=20) print("2 查看捕兽夹");
////////////////////////////
int animalt;
scanf("%d",&animalt);
if(animalt==0){
return;
}
/////////////////////
if(animalt==1){
system("cls");
if(acageplace==10){
system("cls");
print("捕兽夹已满!");
system("pause");
}else if(hand[7]>=1 && acageplace<10){
hand[7]--;
acageplace++;
}else if(hand[7]<1){
system("cls");
print("你还没有捕兽夹!");
system("pause");
}
}
if(animalt==2){
system("cls");
if(acageplace>=1 && YNcatchanimal>=20){
hand[11]+=acageplace*(rand()%2+2);
YNcatchanimal=0;
}else if(acageplace<1){
system("cls");
print("你还未放置捕兽夹!");
system("pause");
}else if(YNcatchanimal<20){
system("cls");
print("捕兽夹没有捕到东西!");
system("pause");
}
}
}
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...