HUST Online Judge WebBoard
Problem 114514 >> 末日生存(v0.2测试版)
zhangwenbo @ 2024-11-22 19:52:12
[ Quote ] [ Edit ] [ Delete ] 1#
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string d="“家”",wei="0",miao="这是你的家...";
map<string,int> bag;
string di[10]={"公园","和爱医院"},wi[10]={"0.5","3"},mi[10]={"家附近的公园,怪物数量中等,但弱","“和爱医院”,附近有名的大医院,也是第一个沦陷的设施,怪物数量密集,有的会变异"};
struct clas{
string s;
}name[65];int inbe=1;
int ti[10]={5,7};
int hp=100,san=200,Lv,tili=100,jie=100,exp1;
void x_1();void x_2();void x_3();void x_4();void x_6();void setsize(int col, int row);void Prepare();void cls(string a);void zh(string a,int s);void zhan(string le);
int main(){
srand(time(NULL));
setsize(200,150);
SetWindowLongPtrA(GetConsoleWindow(), GWL_STYLE, GetWindowLongPtrA(GetConsoleWindow(),GWL_STYLE)& ~WS_SIZEBOX & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX);\
Prepare();
cout<<"一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一末日生存一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一"<<endl;
cout<<"v0.2测试版"<<endl;
cls("j");
int j=0;
while(1){
if(j==0)j=1;
else{cout<<"一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一末日生存一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一"<<endl;cout<<"v.测试版"<<endl; }
zh("行动:1=出门,2=歇息,3=回家(若在家则无效),4=查看背包,5=查看属性,6=探索(若在家则无效),输入其他结束游戏\n",5);
string x1;
cin>>x1;
if(x1=="1")x_1();
else if(x1=="2")x_2();
else if(x1=="3")x_3();
else if(x1=="4")x_4();
else if(x1=="5"){zh("HP:",50);cout<<hp<<endl;zh("San:",50);cout<<san<<endl;zh("Lv.",50);cout<<Lv<<endl;zh("exp",50);cout<<exp1<<endl;zh("体力:",50);cout<<tili<<endl;zh("饱食度:",50);cout<<jie<<endl;zh("所在地点:"+d+"\n",50);zh("危险程度:"+wei+"\n",50);zh("描述:"+miao+"\n",50);cls("j");cls("cls");}
else if(x1=="6")x_6();
else{cls("cls");zh("感谢游玩\n\n\n",50);zh("作者:zhangwenbo\n\n\n",50);return 0;}
}
return 0;
}
void x_1(){
zh("去哪?\n",20);
for(int i=0;i<2;i++){
string b;b+=i+'1';
zh(b+"."+di[i]+"\n",20);
}
zh("3.不去了\n",20);
while(1){
int a;
cin>>a;
a-=1;
if(a==2){
cls("cls");
return;
}else if(a>2)zh("请重新输入!\n",20);
else{
if(tili-ti[a]<0){
zh("体力不足,无法前往\n请换一个\n",20);
}else{
zh("名称:"+di[a]+"\n",20);
zh("危险程度:"+wi[a]+"\n",20);
zh("描述:\n "+mi[a]+"\n",20);
string bb;
bb+=ti[a]+'0';
zh("消耗体力:"+bb+"\n\n",20);
zh("是否前往(y/n)\n",20);
string bbb;
cin>>bbb;
if(bbb=="y"){
d=di[a];wei=wi[a];miao=mi[a];tili-=ti[a];
zh("正在前往...\n",20);
Sleep(1000);
zh("已到达!\n",20);
cls("j");
break;
}else{
zh("那么请重新选择\n",20);
}
}
}
}
cls("cls");
}
void x_2(){
if(tili==100)zh("你的体力为满!\n",20);
else if(jie-5>=0){
if(tili!=100&&tili+10<100){
tili+=10;
jie-=5;
zh("你的体力已增加\n",20);
}else if(tili+10>=100){
zh("你的体力已回满\n",20);
tili=100;jie-=5;
}
}else{
zh("你太饿了,无法歇息\n",20);
}
cls("j");
cls("cls");
}
void x_3(){
if(d=="“家”")zh("你已在家...",20);
else{
for(int i=0;i<2;i++){
if(d==di[i]){
zh("已回家",20);
tili-=ti[i];
break;
}
}
}
cout<<endl;
cls("j");
d="“家”";wei="0";miao="这是你的家...";
cls("cls");
}
void x_4(){
int ccc=0;
for(int i=1;i<inbe;i++){
if(bag[name[i].s]!=0){
cout<<name[i].s<<" "<<bag[name[i].s]<<"个\n";
ccc=1;
}
}
if(!ccc)cout<<"背包内无物品\n";
cls("j");
cls("cls");
}
zhangwenbo @ 2024-11-22 19:52:36
[ Quote ] [ Edit ] [ Delete ] 2#
void x_6(){
srand(time(NULL));
if(d=="公园"){
if(tili<=5){
tili-=5;
zh("你太累了...\n",20);
}else{
int x=rand()%6;
if(x==0){
int ij=0;
zh("你发现了一个腐烂的苹果\n",20);
for(int i=1;i<=64;i++){if(name[i].s=="腐烂的苹果"){bag[name[i].s]++;ij=1;}}
if(ij!=1){
name[inbe].s="腐烂的苹果";
bag["腐烂的苹果"]=1;
inbe++;
}
}else if(x==1)zh("你什么也没遇到\n",20);
else if(x==5){
int ij=0;
zh("你捡到了一个锋利的石子\n",20);
for(int i=1;i<inbe;i++){if(name[i].s=="锋利的石子"){bag[name[i].s]++;ij=1;}}
if(ij!=1){
name[inbe].s="锋利的石子";
bag["锋利的石子"]=1;
inbe++;
}
}else if(x==3){
int ij=0;
zh("你捡到了一袋发霉的面包\n",20);
for(int i=1;i<inbe;i++){if(name[i].s=="发霉的面包"){bag[name[i].s]++;ij=1;}}
if(ij!=1){
name[inbe].s="发霉的面包";
bag["发霉的面包"]=1;
inbe++;
}
}else{
zh("你遇到了丧尸!!!",20);
zhan("丧尸");
}
}
}else if(d=="和爱医院"){
if(tili<=5){
tili-=5;
zh("你太累了...\n",20);
}else{
int x=rand()%10;
if(x==0||x==8){
int ij=0;
zh("你发现了一瓶过期的药品\n",20);
for(int i=1;i<=64;i++){if(name[i].s=="过期的药品"){bag[name[i].s]++;ij=1;}}
if(ij!=1){
name[inbe].s="过期的药品";
bag["过期的药品"]=1;
inbe++;
}
}else if(x==5||x==6){
int ij=0;
zh("你捡到了一把生锈的手术刀\n",20);
for(int i=1;i<inbe;i++){if(name[i].s=="生锈的手术刀"){bag[name[i].s]++;ij=1;}}
if(ij!=1){
name[inbe].s="生锈的手术刀";
bag["生锈的手术刀"]=1;
inbe++;
}
}else if(x==3){
int ij=0;
zh("你捡到了一盒999感冒灵\n",20);
for(int i=1;i<inbe;i++){if(name[i].s=="999感冒灵"){bag[name[i].s]++;ij=1;}}
if(ij!=1){
name[inbe].s="999感冒灵";
bag["999感冒灵"]=1;
inbe++;
}
}else if(x==9||x==4||x==2||x==7){
int lili=rand()%100;
if(lili>=0&&lili<=40&&lili!=2){
zh("你遇到了病尸!!!",20);
zhan("病尸");
}else if(lili==2||lili==98){
zh("你遇到了小boss-克鲁苏之眼!!!!!",20);
zhan("克鲁苏之眼");
}else{
zh("你遇到了丧尸!!!",20);
zhan("丧尸");
}
}else zh("你什么也没遇到\n",20);
}
}else{
zh("你在家\n",20);
}
cls("j");
cls("cls");
}
void setsize(int col, int row){
char cmd[64];
sprintf(cmd, "mode con cols=%d lines=%d", col, row);
system(cmd);
}
void Prepare(){
HANDLE hOut;
CONSOLE_CURSOR_INFO curInfo;
hOut=GetStdHandle(STD_OUTPUT_HANDLE);
curInfo.dwSize=1;
curInfo.bVisible=0;
SetConsoleCursorInfo(hOut,&curInfo);
SetConsoleTitle("末日生存");
}
void cls(string a){
if(a=="j")system("pause");
else system("cls");
}
zhangwenbo @ 2024-11-22 19:52:41
[ Quote ] [ Edit ] [ Delete ] 3#
void zh(string a,int s){
for(int i=0;i<a.size();i++){
cout<<a[i];
Sleep(s);
}
}//逐字说话 (文本 ,等待时间)
void zhan(string le){
if(le=="丧尸"){
srand(time(NULL));
int xue=rand()%10+10;
zh("对手血为:",20);cout<<xue<<endl;
int x2=0,x2i=0;
for(int i=1;i<inbe;i++){
if(name[i].s=="锋利的石子"&&bag[name[i].s]!=0){x2=bag[name[i].s];x2i=i;}
}
zh("1.拳击(10伤害,但对手会还击,消耗1体力)\n",20);
zh("2.用锋利的石子砸(5伤害,对手不会还击,一个一次,消耗3体力)\n 拥有:",20);cout<<x2<<endl;
zh("选择(1,2...)(没有自动用拳击)\n",20);
while(1){
if(hp<=0){
cls("cls");
system("color 4E");
Sleep(500);
cout<<"GAME OVER"<<endl<<endl<<endl;
Sleep(500);
zh("你被丧尸所杀...",100);
exit(0);
}
cout<<"你的HP:"<<hp<<" "<<"你的体力:"<<tili<<endl<<"对手的血:"<<xue<<endl;
int a;
cin>>a;
if(a==2&&x2>0&&tili>=3){
xue-=5;
bag[name[x2i].s]--;
x2--;
tili-=3;
if(xue<=0)break;
}else if(tili>=1){
xue-=10;
tili-=1;
if(xue<=0)break;
int ant=rand()%3+2;
hp-=ant;
cout<<"丧尸使用“抓”造成"<<ant<<"点伤害\n";
}else{
zh("体力不足,请重选\n",20);
}
}
}else if(le=="克鲁苏之眼"){
zh("但是我没做( ̄y▽, ̄)╭\n",20);
}else if(le=="病尸"){
//zh("但是我没做( ̄y▽, ̄)╭ \n",20);
srand(time(NULL));
int xue=rand()%7+5;
zh("对手血为:",20);cout<<xue<<endl;
int x2=0,x2i=0;
for(int i=1;i<inbe;i++){
if(name[i].s=="锋利的石子"&&bag[name[i].s]!=0){x2=bag[name[i].s];x2i=i;}
}
zh("1.拳击(7伤害,但对手会还击,消耗1体力)\n",20);
zh("2.用锋利的石子砸(3伤害,对手不会还击,一个一次,消耗3体力)\n 拥有:",20);cout<<x2<<endl;
zh("选择(1,2...)(没有自动用拳击)\n",20);
while(1){
if(hp<=0){
cls("cls");
system("color 4E");
Sleep(500);
cout<<"GAME OVER"<<endl<<endl<<endl;
Sleep(500);
zh("你被病尸所杀...",100);
exit(0);
}
cout<<"你的HP:"<<hp<<" "<<"你的体力:"<<tili<<endl<<"对手的血:"<<xue<<endl;
int a;
cin>>a;
if(a==2&&x2>0&&tili>=3){
xue-=3;
bag[name[x2i].s]--;
x2--;
tili-=3;
if(xue<=0)break;
int dxd=rand()%3;
if(dxd==0){
int ant=rand()%2+1;
xue+=ant;
cout<<"病尸使用“嗑药”恢复"<<ant<<"点血量\n";
}
}else if(tili>=1){
xue-=7;
tili-=1;
if(xue<=0)break;
int dxd=rand()%3;
if(dxd==0){
int ant=rand()%2+1;
xue+=ant;
cout<<"病尸使用“嗑药”恢复"<<ant<<"点血量\n";
}else{
int ant=rand()%2+2;
hp-=ant;
cout<<"病尸使用“抓”造成"<<ant<<"点伤害\n";
}
}else{
zh("体力不足,请重选\n",20);
}
}
}
zh("你赢了!!!\n",20);
tili-=10;
cls("j");
cls("cls");
}
zhangwenbo @ 2024-11-22 19:55:11
[ Quote ] [ Edit ] [ Delete ] 4#
拖更了多久了呢
sunyicheng @ 2024-11-22 19:55:35
[ Quote ] [ Edit ] [ Delete ] 5#
666
sunyicheng @ 2024-11-22 20:42:36
[ Quote ] [ Edit ] [ Delete ] 6#
有关机代码吗??
qianzixuan @ 2024-11-22 20:53:45
[ Quote ] [ Edit ] [ Delete ] 7#
能换Python写吗?
zhangwenbo @ 2024-11-22 21:42:36
[ Quote ] [ Edit ] [ Delete ] 8#
@sunyicheng 无,请放心食用
zhangwenbo @ 2024-11-22 21:43:02
[ Quote ] [ Edit ] [ Delete ] 9#
@qianzixuan 我不会Python
sunyicheng @ 2024-11-23 08:10:07
[ Quote ] [ Edit ] [ Delete ] 10#
@zhangwenbo,谢谢!
sunyicheng @ 2024-11-28 19:29:02
[ Quote ] [ Edit ] [ Delete ] 11#
hangwenbo @ 2024-11-22 21:42:36[ Quote ] [ Edit ] [ Delete ] 8#
@sunyicheng 无,请放心食用
食用?
qianzixuan @ 2024-11-29 17:49:54
[ Quote ] [ Edit ] [ Delete ] 12#
滥用VS写吗?????????
VS= Microsoft Visual Sudio
zhangwenbo @ 2024-11-30 20:46:11
[ Quote ] [ Edit ] [ Delete ] 13#
@qianzixuan Microsoft Visual Sudio是什么
qianzixuan @ 2024-12-06 17:27:39
[ Quote ] [ Edit ] [ Delete ] 14#
......................................................
zhangwenbo @ 2024-12-06 18:16:54
[ Quote ] [ Edit ] [ Delete ] 15#
????????????
qianzixuan @ 2024-12-13 17:49:59
[ Quote ] [ Edit ] [ Delete ] 16#
https://visualstudio.microsoft.com/zh-hans/downloads/