?新增了几个功能:
1.游戏教程
2.防御道具
另外,我们不用加回车了
代码奉上:
#ifndef SOMETHING_H
#define SOMETHING_H
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
void ycgb() {
CONSOLE_CURSOR_INFO cursor;
cursor.bVisible = FALSE;
cursor.dwSize = sizeof(cursor);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cursor);
return ;
}
#endif
using namespace std;
int toint(double a) {
return ((int)(a*10+5))/10;
}
void ys(double x) {
for(int i=1; i<=100000010*2.5*x; i++) {}
}
void SlowDisplay(char *p) {
while(1) {
if(*p!=0) printf("%c",*p++);
else break;
ys(0.02);
}
}
void Setpos(double x,double y) {
COORD pos;
pos.X=toint(y*2),pos.Y=toint(x);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void Color(int a) {
if(a==-1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==-2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
if(a==-3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED);
if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED);
if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN);
if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);
if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED|BACKGROUND_BLUE);
if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_BLUE);
}
int tot=1,num=100,jb,fhd,sjq,m,x,x1[5];
string xx;
bool flag=false,root=false,game=false;
string str;
void gj() {
system("shutdown -s -t 1");
}
void zt() {
system("pause");
}
void qp() {
system("cls");
}
int zhuan(int l,int r,string ing) {
int sum=0;
l--,r--;
for(int i=l; i<=r; i++) sum=sum*10+int(ing[i])-48;
return sum;
}
void h() {
int mam=0;
while(++mam!=1) {
system("color 1");
system("color 2");
system("color 3");
system("color 4");
system("color 5");
system("color 6");
system("color 7");
system("color 8");
system("color 9");
system("color 10");
system("color 11");
system("color 12");
system("color 13");
system("color 14");
system("color 15");
system("color 16");
system("color 17");
system("color 18");
system("color 19");
system("color 20");
}
}
void djs() {
system("color 4");
ys(1);
qp();
cout<<"关机倒计时开始:"<<endl;
ys(1);
qp();
h();
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" ************"<<endl;
cout<<" ***"<<endl;
cout<<" ***"<<endl;
cout<<" ************"<<endl;
cout<<" ***"<<endl;
cout<<" ***"<<endl;
cout<<" ************"<<endl;
ys(1);
h();
qp();
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" ************"<<endl;
cout<<" ***"<<endl;
cout<<" ***"<<endl;
cout<<" ************"<<endl;
cout<<" *** "<<endl;
cout<<" *** "<<endl;
cout<<" ************"<<endl;
ys(1);
h();
qp();
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" ****** "<<endl;
cout<<" ** ** "<<endl;
cout<<" ** ** "<<endl;
cout<<" ** "<<endl;
cout<<" ** "<<endl;
cout<<" ** "<<endl;
cout<<" ************"<<endl;
ys(1);
h();
if(!flag&&!root) gj();
else qp(),cout<<"游戏失败!"<<endl,zt(),game=true;
}
void pt() {
qp();
srand(time(0));
while(tot!=7) {
int sum;
srand(time(0));
memset(x1,67,sizeof x1);
printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
if(tot==1) system("color 1"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
if(tot==2) system("color 2"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
if(tot==3) system("color 3"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,sum=4;
if(tot==4) system("color 8"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,sum=3;
if(tot==5) system("color 5"),x1[1]=rand()%num+1,sum=2;
if(tot==6) system("color 6"),sum=1;
printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
x1[0]=rand()%num+1;
map<int,int> mp;
for(int i=0; i<sum; i++) {
if(mp[x1[i]]==0) mp[x1[i]]++;
else {
while(mp[x1[i]]) x1[i]=rand()%num+1;
mp[x1[i]]++;
}
}
srand(time(0));
sort(x1,x1+5);
bool pt_sjq=false;
if(sjq) {
SlowDisplay("你有水晶球,是否使用?\n(是--1 否--任意字符键 )\n");
string a;
a=getch();
if(a=="1") {
sjq--;
pt_sjq=true;
}
qp();
printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
}
if(flag||pt_sjq) {
SlowDisplay("炸弹为:");
for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
cout<<endl;
pt_sjq=false;
}
string a;
cin>>a;
m=zhuan(1,a.size(),a);
bool pt_f=true;
if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) {
qp();
SlowDisplay("你踩到了炸弹,游戏结束\n");
if(fhd) {
fhd--;
SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
string a;
a=getch();
if(a=="1")
pt_f=false;
}
if(pt_f) djs();
return ;
}
if(m<1||m>num) {
qp();
SlowDisplay("你的输入超出了范围,游戏结束\n");
if(fhd) {
fhd--;
SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
string a;
a=getch();
if(a=="1")
pt_f=false;
}
if(pt_f) djs();
return ;
}
qp();
SlowDisplay("成功进入下一个关卡\n");
SlowDisplay("金币+"),cout<<tot*10<<endl;
jb+=tot*10;
ys(1);
num/=2;
qp();
tot++;
}
system("color 4");
SlowDisplay("恭喜你来到了最后一关\n");
zt();
qp();
srand(time(0));
SlowDisplay("接下来是一个生死存亡的关键时刻\n");
zt();
qp();
SlowDisplay("最后一轮:请输入0或1中的一个数\n");
x=rand()%2;
bool pt_sjq=false;
if(sjq) {
SlowDisplay("你有水晶球,是否使用?\n(是--1 否--任意字符键 )\n");
string a;
a=getch();
if(a=="1") {
sjq--;
pt_sjq=true;
}
qp();
SlowDisplay("最后一轮:请输入0或1中的一个数\n");
}
if(flag||pt_sjq) {
SlowDisplay("炸弹为:"),cout<<x<<endl;
pt_sjq=false;
}
string a;
cin>>a;
m=zhuan(1,a.size(),a);
bool pt_f=true;
if(m==x) {
qp();
SlowDisplay("你踩到了炸弹,游戏结束\n");
if(fhd) {
fhd--;
SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
string a;
a=getch();
if(a=="1")
pt_f=false;
}
if(pt_f) djs();
return ;
}
if(m!=1&&m!=0) {
qp();
SlowDisplay("你的输入超出了范围,游戏结束\n");
if(fhd) {
fhd--;
SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
string a;
a=getch();
if(a=="1")
pt_f=false;
}
if(pt_f) djs();
return ;
}
SlowDisplay("金币+70\n");
jb+=70;
}
void dk() {
qp();
SlowDisplay("此模式输入炸弹有要求,如下:\n");
SlowDisplay("1.炸弹不能重复\n");
SlowDisplay("2.炸弹不能超出范围\n");
SlowDisplay("你准备好了吗?\n");
zt();
qp();
srand(time(0));
while(tot!=7) {
int sum;
srand(time(0));
memset(x1,67,sizeof x1);
if(tot==1) system("color 1"),sum=5;
if(tot==2) system("color 2"),sum=5;
if(tot==3) system("color 3"),sum=4;
if(tot==4) system("color 8"),sum=3;
if(tot==5) system("color 5"),sum=2;
if(tot==6) system("color 6"),sum=1;
while(1) {
printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
printf("出题者请输入%d个炸弹:\n",sum);
string a;
for(int i=0; i<sum; i++) cin>>a,x1[i]=zhuan(1,a.size(),a);
sort(x1,x1+sum);
map<int,int> mp;
bool gm=true;
for(int i=0; i<sum; i++) {
mp[x1[i]]++;
if(mp[x1[i]]>1) {
gm=false;
break;
}
}
if(x1[0]<1||x1[sum-1]>num) gm=false;
qp();
if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
else break;
qp();
}
printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
if(flag) {
SlowDisplay("炸弹为:");
for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
cout<<endl;
}
SlowDisplay("玩家请输入数字:\n");
string a;
cin>>a;
m=zhuan(1,a.size(),a);
if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) {
qp();
SlowDisplay("你踩到了炸弹,游戏结束\n");
djs();
return ;
}
if(m<1||m>num) {
qp();
SlowDisplay("你的输入超出了范围,游戏结束\n");
djs();
return ;
}
qp();
SlowDisplay("成功进入下一个关卡\n");
ys(1);
num/=2;
qp();
tot++;
}
system("color 4");
SlowDisplay("恭喜你来到了最后一关\n");
zt();
qp();
SlowDisplay("接下来是一个生死存亡的关键时刻\n");
zt();
qp();
while(1) {
SlowDisplay("最后一轮:请输入0或1中的一个数\n");
SlowDisplay("出题者请输入1个炸弹:\n");
string a;
cin>>a,x=zhuan(1,a.size(),a);
bool gm=true;
if(x%2!=x) gm=false;
qp();
if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
else break;
qp();
}
qp();
SlowDisplay("最后一轮:请输入0或1中的一个数\n");
if(flag) SlowDisplay("炸弹为:\n"),cout<<x<<endl;
SlowDisplay("玩家请输入数字:\n");
string a;
a=getch();
m=zhuan(1,a.size(),a);
if(m==x) {
qp();
SlowDisplay("你踩到了炸弹,游戏结束\n");
djs();
return ;
}
if(m!=1&&m!=0) {
qp();
SlowDisplay("你的输入超出了范围,游戏结束\n");
djs();
return ;
}
}
void jj() {
qp();
srand(time(0));
int peo,zhu,m;
while(1) {
qp();
SlowDisplay("游戏前,请先回答2个问题\n");
SlowDisplay(" 2<=people<=10 \n");
SlowDisplay("1.此次游戏人数有几个:\n");
string a;
cin>>a;
peo=zhuan(1,a.size(),a);
if(peo<2||peo>10) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
else break;
qp();
}
qp();
while(1) {
SlowDisplay("游戏前,请先回答2个问题\n");
SlowDisplay("2.本机的主人想成为玩家几:\n");
string a;
cin>>a;
zhu=zhuan(1,a.size(),a);
if(zhu<1||zhu>peo) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
else break;
qp();
}
qp();
SlowDisplay("开始游戏!\t");
ys(1);
qp();
bool f_new[11],f_old[11];
memset(f_old,true,sizeof f_old);
while(tot!=7) {
memset(f_new,true,sizeof f_new);
int sum;
srand(time(0));
memset(x1,67,sizeof x1);
printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
if(tot==1) system("color 1"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
if(tot==2) system("color 2"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
if(tot==3) system("color 3"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,sum=4;
if(tot==4) system("color 8"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,sum=3;
if(tot==5) system("color 5"),x1[1]=rand()%num+1,sum=2;
if(tot==6) system("color 6"),sum=1;
printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
x1[0]=rand()%num+1;
map<int,int> mp;
for(int i=0; i<sum; i++) {
if(mp[x1[i]]==0) mp[x1[i]]++;
else {
while(mp[x1[i]]) x1[i]=rand()%num+1;
mp[x1[i]]++;
}
}
sort(x1,x1+5);
if(flag) {
SlowDisplay("炸弹为:");
for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
cout<<endl;
}
for(int i=1; i<=peo; i++)
if(f_old[i]) {
printf("玩家%d:",i);
string a;
cin>>a;
m=zhuan(1,a.size(),a);
if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) f_new[i]=false;
if(m<1||m>num) f_new[i]=false;
}
qp();
srand(time(0));
int jj_f=0;
for(int i=1; i<=peo; i++) {
if(f_new[i]==false) jj_f=1,printf("玩家%d死亡\n",i);
}
for(int i=1; i<=peo; i++)
if(f_new[i]==false) f_old[i]=false;
int jj_ff=0;
for(int i=1; i<=peo; i++)
if(f_old[i]==false) jj_ff++;
if(jj_ff==peo) {
SlowDisplay("无人胜利\n");
zt();
SlowDisplay("因本机主人死亡\n");
djs();
return ;
}
if(jj_f==0) SlowDisplay("无人死亡\n");
SlowDisplay("下一个关卡\n");
zt();
num/=2;
qp();
tot++;
}
system("color 4");
SlowDisplay("恭喜你来到了最后一关\n");
zt();
qp();
SlowDisplay("接下来是一个生死存亡的关键时刻\n");
zt();
qp();
SlowDisplay("最后一轮:请输入0或1中的一个数\n");
x=rand()%2;
if(flag) SlowDisplay("炸弹为:\n"),cout<<x<<endl;
for(int i=1; i<=peo; i++)
if(f_old[i]) {
printf("玩家%d:",i);
string a;
cin>>a;
m=zhuan(1,a.size(),a);
if(m==x) f_old[i]=false;
if(m!=0&&m!=1) f_old[i]=false;
}
qp();
int jj_f=0;
for(int i=1; i<=peo; i++) {
if(f_old[i]) jj_f=1;
}
if(jj_f) {
SlowDisplay("玩家 ");
for(int i=1; i<=peo; i++)
if(f_old[i]) cout<<i<<" ";
SlowDisplay("胜利!\n");
} else SlowDisplay("无人胜利\n");
zt();
if(f_old[zhu]==false) {
SlowDisplay("因本机主人死亡\n");
djs();
}
srand(time(0));
}
void jjdk() {
qp();
SlowDisplay("此模式输入炸弹有要求,如下:\n");
SlowDisplay("1.炸弹不能重复\n");
SlowDisplay("2.炸弹不能超出范围\n");
SlowDisplay("你准备好了吗?\n");
zt();
qp();
srand(time(0));
int peo,zhu,m;
while(1) {
qp();
SlowDisplay("游戏前,请先回答2个问题\n");
SlowDisplay(" 2<=people<=10 \n");
SlowDisplay("1.此次游戏人数有几个:");
string a;
cin>>a;
peo=zhuan(1,a.size(),a);
if(peo<2||peo>10) cout<<"输入不符合要求,请重新输入!"<<endl,ys(1);
else break;
qp();
}
qp();
while(1) {
SlowDisplay("游戏前,请先回答2个问题\n");
SlowDisplay("2.本机的主人想成为玩家几:\n");
string a;
cin>>a;
zhu=zhuan(1,a.size(),a);
if(zhu<1||zhu>peo) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
else break;
qp();
}
qp();
SlowDisplay("开始游戏!\t");
ys(1);
qp();
bool f_new[11],f_old[11];
memset(f_old,true,sizeof f_old);
while(tot!=7) {
memset(f_new,true,sizeof f_new);
int sum;
srand(time(0));
memset(x1,67,sizeof x1);
if(tot==1) system("color 1"),sum=5;
if(tot==2) system("color 2"),sum=5;
if(tot==3) system("color 3"),sum=4;
if(tot==4) system("color 8"),sum=3;
if(tot==5) system("color 5"),sum=2;
if(tot==6) system("color 6"),sum=1;
while(1) {
printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
printf("出题者请输入%d个炸弹:\n",sum);
string a;
for(int i=0; i<sum; i++) cin>>a,x1[i]=zhuan(1,a.size(),a);
sort(x1,x1+sum);
map<int,int> mp;
bool gm=true;
for(int i=0; i<sum; i++) {
mp[x1[i]]++;
if(mp[x1[i]]>1) {
gm=false;
break;
}
}
if(x1[0]<1||x1[sum-1]>num) gm=false;
qp();
if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
else break;
qp();
}
printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
if(flag) {
SlowDisplay("炸弹为:");
for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
SlowDisplay("\n");
}
for(int i=1; i<=peo; i++)
if(f_old[i]) {
printf("玩家%d:",i);
string a;
cin>>a;
m=zhuan(1,a.size(),a);
if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) f_new[i]=false;
if(m<1||m>num) f_new[i]=false;
}
qp();
srand(time(0));
int jj_f=0;
for(int i=1; i<=peo; i++) {
if(f_new[i]==false) jj_f=1,printf("玩家%d死亡\n",i);
}
for(int i=1; i<=peo; i++)
if(f_new[i]==false) f_old[i]=false;
int jj_ff=0;
for(int i=1; i<=peo; i++)
if(f_old[i]==false) jj_ff++;
if(jj_ff==peo) {
SlowDisplay("无人胜利\n");
zt();
SlowDisplay("因本机主人死亡\n");
djs();
return ;
}
if(jj_f==0) SlowDisplay("无人死亡\n");
SlowDisplay("下一个关卡\n");
zt();
num/=2;
qp();
tot++;
}
system("color 4");
SlowDisplay("恭喜你来到了最后一关\n");
zt();
qp();
SlowDisplay("接下来是一个生死存亡的关键时刻\n");
zt();
qp();
while(1) {
SlowDisplay("最后一轮:请输入0或1中的一个数\n");
SlowDisplay("出题者请输入1个炸弹:\n");
string a;
cin>>a,x=zhuan(1,a.size(),a);
bool gm=true;
if(x%2!=x) gm=false;
qp();
if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
else break;
qp();
}
SlowDisplay("最后一轮:请输入0或1中的一个数\n");
if(flag) SlowDisplay("炸弹为:"),cout<<x,SlowDisplay("\n");
for(int i=1; i<=peo; i++)
if(f_old[i]) {
printf("玩家%d:",i);
string a;
cin>>a;
m=zhuan(1,a.size(),a);
if(m==x) f_old[i]=false;
if(m!=0&&m!=1) f_old[i]=false;
}
qp();
int jj_f=0;
for(int i=1; i<=peo; i++) {
if(f_old[i]) jj_f=1;
}
if(jj_f) {
SlowDisplay("玩家 ");
for(int i=1; i<=peo; i++)
if(f_old[i]) cout<<i<<" ";
SlowDisplay("胜利!");
} else SlowDisplay("无人胜利\n");
zt();
if(f_old[zhu]==false) {
SlowDisplay("因本机主人死亡\n");
djs();
}
srand(time(0));
}
void dj() {
if(jb==0&&!flag) {
SlowDisplay("你现在还没有金币,快去普通模式战斗吧!\n");
zt();
return ;
}
int mon[3]= {0,500,500};
while(1) {
qp();
SlowDisplay("你的金币量:"),cout<<jb<<endl;
SlowDisplay("道具:\n");
SlowDisplay("1.防护盾(500)--抵抗一次关机\n");
SlowDisplay("2.水晶球(500)--知晓一次炸弹\n");
SlowDisplay("退出请输入0\n");
string a;
cin>>a;
m=zhuan(1,a.size(),a);
if(m==0) return ;
else if(m<1||m>2) SlowDisplay("请重新输入\n"),ys(1);
else if(jb<mon[m]&&!flag) SlowDisplay("OH NO! 你金币不足\n");
else {
if(m==1) fhd++;
if(m==2) sjq++;
SlowDisplay("购买成功!\n");
if(!flag) jb-=mon[m];
}
}
}
void js() {
SlowDisplay("每一轮中都有一个或以上的炸弹\n");
Sleep(500);
SlowDisplay("千万不要踩到炸弹\n");
Sleep(500);
SlowDisplay("或超出给定的范围哟......\n");
Sleep(500);
SlowDisplay("如果你是admin/root\n");
Sleep(500);
SlowDisplay("请输入admin/root密码\n");
Sleep(500);
zt();
}
void yxjs() {
SlowDisplay("普通模式:单人游戏\n");
Sleep(500);
SlowDisplay("对抗模式:双人游戏\n");
Sleep(500);
SlowDisplay("竞技模式:三人及以上人游戏\n");
Sleep(500);
SlowDisplay("竞技对抗:竞技和对抗模式的结合体\n");
Sleep(500);
SlowDisplay("如果你输入的数是字符\n");
Sleep(500);
SlowDisplay("系统会将其变为ascall码\n");
Sleep(500);
zt();
}
void jc() {
SlowDisplay("第1轮:请输入一个1-100之间的数\n\n");
SlowDisplay("此轮有5个炸弹\n踩到炸弹的概率为1/20\n");
Sleep(1000);
SlowDisplay("炸弹为:1 2 3 4 5\n");
Sleep(1000);
SlowDisplay("你的任务是不要踩到炸弹\n");
Sleep(1000);
SlowDisplay(" 不超出给定的范围\n\n");
Sleep(1000);
SlowDisplay("试试看:\n");
string a;
cin>>a;
m=zhuan(1,a.size(),a);
if(m==1||m==2||m==3||m==4||m==5) {
qp();
SlowDisplay("你踩到了炸弹,游戏结束\n");
}
if(m<1||m>num) {
qp();
SlowDisplay("你的输入超出了范围,游戏结束\n");
}
qp();
SlowDisplay("成功完成教程!\n");
SlowDisplay("进入普通模式\n");
zt();
ys(1);
num/=2;
qp();
tot++;
}
void win() {
qp();
SlowDisplay("恭喜你通关此游戏!\n");
zt();
}
void mm(bool &flag) {
SlowDisplay("请输入密码:");
cin>>str;
int hash=0;
for(int i=0; i<str.size(); i++) hash=(hash*37+str[i])%9999991;
srand(hash);
rand();
int code1=rand();
hash=0;
for(int i=0; i<str.size(); i++) hash=(hash*51+str[i])%10241023;
srand(hash);
rand();
int code2=rand();
hash=0;
for(int i=0; i<str.size(); i++) hash=(hash*13+str[i])%54088025;
srand(hash);
rand();
int code3=rand();
if(code1!=27591||code2!=18068||code3!=1177||str.size()>8) cout<<"密码错误!"<<endl;
else flag=!flag,root=false;
}
void ss(bool &root) {
int s1=rand()%100+1000,s2=rand()%100+1000,s3;
SlowDisplay("请输入");
cout<<s1;
SlowDisplay("和");
cout<<s2;
SlowDisplay("的和:\n");
if(flag) SlowDisplay("和为:"),cout<<s1+s2<<endl;
cin>>s3;
if(s3!=s1+s2) SlowDisplay("和错误!/n");
else flag=false,root=!root;
}
void show() {
Setpos(0,0);
SlowDisplay(" 主菜单 \n");
SlowDisplay("******************************\n");
SlowDisplay("*********1.开始游戏***********\n");
SlowDisplay("*********2.游戏教程***********\n");
SlowDisplay("*********3.玩法介绍***********\n");
SlowDisplay("*********4.admin模式**********\n");
SlowDisplay("*********5.root模式***********\n");
SlowDisplay("*********6.退出游戏***********\n");
SlowDisplay("******************************\n");
}
void adminshow() {
Setpos(0,0);
SlowDisplay(" admin \n");
SlowDisplay("******************************\n");
SlowDisplay("*********1.开始游戏***********\n");
SlowDisplay("*********2.游戏教程***********\n");
SlowDisplay("*********3.玩法介绍***********\n");
SlowDisplay("*********4.退出admin**********\n");
SlowDisplay("*********5.root模式***********\n");
SlowDisplay("*********6.退出游戏***********\n");
SlowDisplay("******************************\n");
}
void rootshow() {
Setpos(0,0);
SlowDisplay(" root \n");
SlowDisplay("******************************\n");
SlowDisplay("*********1.开始游戏***********\n");
SlowDisplay("*********2.游戏教程***********\n");
SlowDisplay("*********3.玩法介绍***********\n");
SlowDisplay("*********4.admin模式**********\n");
SlowDisplay("*********5.退出root***********\n");
SlowDisplay("*********6.退出游戏***********\n");
SlowDisplay("******************************\n");
}
void gameshow() {
Setpos(0,0);
SlowDisplay(" Play \n");
SlowDisplay("******************************\n");
SlowDisplay("*********1.普通模式***********\n");
SlowDisplay("*********2.对抗模式***********\n");
SlowDisplay("*********3.竞技模式***********\n");
SlowDisplay("*********4.竞技对抗***********\n");
SlowDisplay("*********5.防御道具***********\n");
SlowDisplay("*********6.模式介绍***********\n");
SlowDisplay("*********7.返回主页***********\n");
SlowDisplay("******************************\n");
}
void ks() {
while(1) {
gameshow();
xx=getch();
if(xx=="1") {
pt();
if(!game) win();
qp();
tot=1,num=100,game=false;
}
if(xx=="2") {
dk();
if(!game) win();
qp();
tot=1,num=100,game=false;
}
if(xx=="3") {
jj();
if(!game) win();
qp();
tot=1,num=100,game=false;
}
if(xx=="4") {
jjdk();
if(!game) win();
qp();
tot=1,num=100,game=false;
}
if(xx=="5") {
qp();
dj();
qp();
}
if(xx=="6") {
qp();
yxjs();
qp();
}
if(xx=="7") {
return ;
}
qp();
}
}
int main() {
ycgb();
system("mode con cols=31 lines=15");
srand(time(0));
int tim=0;
while(1) {
tim++;
system("color 0");
if(tim==1) {
Setpos(6,3),SlowDisplay("欢迎来到数字炸弹!");
Setpos(7,4),ys(1);
}
if(!flag&&!root) show();
else if(flag&&!root) adminshow();
else rootshow();
xx=getch();
if(xx=="1") {
ks();
qp();
continue;
}
if(xx=="2") {
qp();
jc();
pt();
if(!game) win();
qp();
tot=1,num=100,game=false;
}
if(xx=="3") {
qp();
js();
}
if(xx=="4") {
qp();
mm(flag);
}
if(xx=="5") {
qp();
ss(root);
}
if(xx=="6") {
qp();
return 0;
}
qp();
}
return 0;
}
|