• 板块灌水区
  • 楼主tanshunqu
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/29 15:13
  • 上次更新2024/12/29 19:28:52
查看原帖
1372510
tanshunqu楼主2024/12/29 15:13
#include<bits/stdc++.h>
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<windows.h>
using namespace std;
int day;
int zhanji=0;
int jinbi=1000;
int yourenwaichuma;
int beibao[110]={0,3,3,3}; 
int len=3;
int renshu=4;
string beibao_ming[110]={"","A.香蕉(+5点血量+15饥饿值)","B.苹果(+10点血量+10饥饿值)","C.矿泉水(+25水分)"};
char xuanze;
string paishei;
string shifoujieshu;
int maimai[110];
struct p{
	string name; 
	int ji=100;
	int ke=100;
	int xl=100;
	int waichu=0,jitian;//0在家;1外出
	int sw=0; 
}p[5];
void chifan(){//吃饭 
	for(int i=1;i<=4;i++){
		if(yourenwaichuma!=i&&p[i].sw==0){
			cout<<"是(A)否(B)给"<<p[i].name<<"吃的?"<<endl;
			cin>>xuanze;
			if(xuanze=='A'){
				cout<<"吃点什么?(选项)"<<endl;
				cin>>xuanze; 
				for(char j='A';j<=len+65;j++){
					if(xuanze==j){
						if(j=='A'){//香蕉 
							p[i].ji+=15;
							p[i].xl+=5;
							beibao[1]--;
						}
						else if(j=='B'){//苹果 
							p[i].ji+=10;
							p[i].xl+=10;
							beibao[2]--;
						}
						else if(j=='C'){
							p[i].ke+=25;
							beibao[3]--;
						}
					}
				}
			}
		}
	}
	return;
}
void xiaohao(){//消耗 
	for(int i=1;i<=4;i++){
		if(p[i].sw==0){
			p[i].ji-=rand()%16;
			p[i].ke-=rand()%16;
			if(p[i].ji<0){
				p[i].ji=0;
				p[i].xl-=rand()%21;
			}
			if(p[i].ke<0){
				p[i].ke=0;
				p[i].xl-=rand()%21;
			}
			if(p[i].ke>100){
				p[i].ke=100;
			}
			if(p[i].ji>100){
				p[i].ji=100;
			}
			if(p[i].xl<=0){
				p[i].sw=1;
				renshu--;
			}
			if(p[i].xl>100){
				p[i].xl=100;
			}
		}
	}
	return;
} 
void kaitouyu(){//输出 
	string s="欢迎来到荒岛求生!"; 
	for(int i=0;i<s.size();i++){
		cout<<s[i];
		Sleep(25);
	}
	Sleep(975);
	system("cls");
	s="你现在一共有4人,看你能活几天";
	for(int i=0;i<s.size();i++){
		cout<<s[i];
		Sleep(25);
	}
	Sleep(975);
	system("cls");
	s="现在开始吧";
	for(int i=0;i<s.size();i++){
		cout<<s[i];
		Sleep(25);
	}
	Sleep(975);
	system("cls");
	cout<<"签约合同:"<<endl;
	cout<<"1、一但签约不得反悔;"<<endl;
	cout<<"2、如果你活到30天,可得9999元,按Ctrl+z结束这次活动。"<<endl;
	cout<<"签约人:(输入4个人的名字)"<<endl;
	cin>>p[1].name>>p[2].name>>p[3].name>>p[4].name;
	system("cls"); 
	cout<<"正在前往荒岛中";
	Sleep(1000);
	cout<<"-";
	Sleep(1000);
	cout<<"-";
	Sleep(1000);
	cout<<"-";
	Sleep(1000);
	cout<<"-";
	Sleep(1000);
	system("cls");
	return;
}
bool jieshu(){//是否结束这次游戏 
	if(day>=30){
		cout<<"是否结束?"<<endl; 
		cin>>shifoujieshu;
		if(shifoujieshu=="1234567890"){
			zhanji++;
			jinbi+=9999;
			return true;
		}
	}
	return false;
}
void print_zhuangtai(){//输出 
	cout<<"4人的状态:"<<endl;
	for(int i=1;i<=4;i++){
		if(p[i].sw==0&&yourenwaichuma!=i) cout<<p[i].name<<":饥饿值:"<<p[i].ji<<" 水分:"<<p[i].ke<<" 血量:"<<p[i].xl<<endl;
		else if(p[i].sw==0) cout<<p[i].name<<":外出中"<<endl; 
		else cout<<p[i].name<<":已死亡"<<endl;
	}
	cout<<"背包:"<<endl;
	for(int i=1;i<=len;i++){
		if(beibao[i]>0) cout<<beibao_ming[i]<<":"<<beibao[i]<<" ";
	} 
	cout<<endl;
	return;
}
void pairenwaichu(){//外派 
	cout<<"是否派人外出?A.是B.不是"<<endl;
	cin>>xuanze;
	cout<<endl;
	if(xuanze=='A'){
		cout<<"派谁?"<<endl;
		cin>>paishei;
		for(int i=1;i<=4;i++){
			if(paishei==p[i].name&&p[i].sw==0){
				p[1].waichu=1;
				p[1].jitian=rand()%3+1;
				yourenwaichuma=1;
			}
		}
	} 
	return;
}
void chunhuohou(){//存活后 
	cout<<"你成功的存活了"<<day<<"天,一个商人向你走来……"<<endl;
	system("cls");
	cout<<"嘿,你要卖东西吗?买(A)不买(B)"<<endl;
	cin>>xuanze;
	if(xuanze=='A'){
		for(char i='A';i<=len+'A';i++){
			maimai[i]=rand()%5000+1;
		}
		cout<<"我有这些:"<<endl;
		cout<<"香蕉(A):"<<maimai['A']<<"枚金币"<<endl;
		cout<<"苹果(B):"<<maimai['B']<<"枚金币"<<endl;
		cout<<"纯净水(C):"<<maimai['C']<<"枚金币"<<endl;
		cout<<"你要买什么?(只能买一类,一次*5)"<<endl;
		cin>>xuanze;
		int xuanze_b=xuanze-'A';
		for(char i='A';i<='C';i++){
			if(i==xuanze&&jinbi>=maimai[i]){
				cout<<"购买成功!"<<endl;
				break;
			}
		} 
	Sleep(1000);
	system("cls");
	return;
}
void jieshuyu(string s="你在荒岛中孤独地死去,却没人为你悲伤……"){//结束语 
	for(int i=0;i<s.size();i++){
		cout<<s[i];
		Sleep(100);
	}
	Sleep(1900);
	return;
}
int main(){
	for(;;){
		day=1;
		kaitouyu();
		for(;;day++){
			if(yourenwaichuma!=0){
				if(p[yourenwaichuma].jitian==0){
					p[yourenwaichuma].xl-=rand()%21;
					yourenwaichuma=0;
					for(int i=1;i<=len;i++){
						beibao[i]+=rand()%5;
					}
				}
				else p[yourenwaichuma].jitian--;
			}
			cout<<"第"<<day<<"天"<<endl;
			if(jieshu()) break;
			print_zhuangtai();
			if(yourenwaichuma==0) pairenwaichu();
			chifan();
			xiaohao();
			system("cls");
			if(renshu==0) break;
		}
		if(renshu==0) break;
		else{
			chunhuohou();
		}
	}
	jieshuyu();
	return 0;
}
/*
1.香蕉:+5xl+15ji
2.苹果:10xl+10ji
3.矿泉水:+25ke 
*/

/*
编译日志:
第一天:
今天加了开头语和派人外出探险的功能 
第二天:
今天优化了输出,加了吃饭功能和每天的消耗 
第三天:
改了一下输出,增加了矿泉水 
第四天:
又改了一下输出 
第五天:
又改了一下输出,加了死亡、结束语和结束一次后的购买(测试)
第六天:
做完结束一次后的购买(未完成) 
*/
2024/12/29 15:13
加载中...