#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<cstdio>
using namespace std;
int a,a1,b,b1,gb,c,d;
int cd1,cd2,tc;
int ax;
char rw='@';
string mapp1[6][25]={
{
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" ----- -- -- - ----- |",
" - |",
"---- -- |",
" ^ |",
" |",
" |",
"----^--= |",
" ---= |",
" |",
" |- |",
" $ |",
" ----|",
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
},
{
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" ==^ |",
" - --^ |",
" |",
" |",
" |",
" |",
" |",
" ==^ |",
" --- < |",
" < |",
" --- |",
" -- <^ ^|",
" -- < ||",
"--^ ---- - ^ $|",
" ----= >--|",
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
},
{
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" ==- |",
" ^===^ > < - |",
" < > > < |",
" > < |",
" < |",
" |",
" ----- |",
" == |",
" ^|",
" -=-=-==---- $|",
" ^--|",
" < |",
" === |",
" > < |",
"-== ^---^ == |",
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
},
{
" |",
" |",
" |",
" ------ --- |",
" - --- -- ^ |",
" <---> |",
" <-> -- <^ |",
" -- <$|",
" =^ <-> <|",
" = ---^ |",
" ^ |",
" | |",
" <|= |",
" < |",
" > |",
" > ---^<^--^- |",
"= -- -- - -- --- -- - --- --- - |",
" -- |",
" |",
" |",
" |",
" ^ ^ |",
" <> < > > |",
"----^--^-^----^^^---^^-^^^--= --- -- ---^---=|",
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
},
{
"|> <|",
"|> <|",
"|> <|",
"|> ^ ^ <|",//21 0
"|> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <|",
"|> <|",
"|> ^^^^^ <|",
"|> ^ <|",
"|> - - - - - - <- - - <|",
"|> ^ <|",
"|> ^^^^^^ < ^^^^^^^ <|",
"|> ||",
"|> | | | | | ||",
"|> | |^^^^^^^^^^^^^^^^^^ ^ | ||",
"|> ||",
"|> ^^^^^^^^ ^ ^^^^^^^^^^^^<|",
"|> ^ ^ ^ <-> ^ <<|",
"|> <> <> ^ <|",
"|> ^ ^ ^ < ^^^^^^^ ||",
"||^^^^^^^^^^^^^^^^^^^^^> |^ ^ ||",
"|| ^ ^ <| - |> ||",
"|| > <| $ |> ||",
"|| =-= ^ ||",
"|| ||",
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
},
{
" - -|",
" $|",
" ---- |",
"--- --- | |",
" | |",
" = ^^ = =^ |",
" <> |",
" -----=|",
" ^^ |",
" <> = |",
" = |",
" = ^^ |",
" <> |",
" - ^^ |",
" ^^ <> = |",
" <> ---= |",
" ^^ |",
" = <> |",
" |",
" < --= |",
" ^^ |",
" <>= |",
" |",
"--= |",
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
}
};
void sb_ycksbj();
void sb_yd(int x,int y);
void sb_yc();
void g1();
void g2();
void g3();
void g4();
void g5();
void g6();
void gq();
void gq_sx(int x,int y,char z,int l,bool pd);
void gq_ys(int x);
void gq_yx(int x,int y,char z,int l);
void gq_zt(int x,int y,int l,bool pd);
void gq_dy(string x,int l);
int hy();
void gq_ys(int x)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x); //x代表的是第几号颜色 前面的GetStdHandle(STD_OUTPUT_HANDLE)是获取当前窗口权柄,简单来说就是让这个颜色加在这个页面
return;
}
void sb_ycksbj()
{
HANDLE hStdin=GetStdHandle(STD_INPUT_HANDLE);
DWORD mode;
GetConsoleMode(hStdin,&mode);
mode&=~ENABLE_QUICK_EDIT_MODE; //移除快速编辑模式
mode&=~ENABLE_INSERT_MODE; //移除插入模式
mode&=~ENABLE_MOUSE_INPUT;
SetConsoleMode(hStdin, mode);
}
void sb_yd(int x,int y) //光标移动到x,y
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(handle,pos);
}
void sb_yc()
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;
GetConsoleCursorInfo(handle,&CursorInfo);//获取控制台光标信息
CursorInfo.bVisible=false; //隐藏控制台光标
SetConsoleCursorInfo(handle,&CursorInfo);//设置控制台光标状态
}
void gq_sx(int x,int y,char z,int l,bool pd)
{
if(pd)//判断pd是否为真,可以写成if(pd==1)
{
system("cls");
cout<<"刷新中...";
sb_ycksbj();
sb_yc();
system("title 跑酷游戏");
system("mode con cols=50 lines=25");
sb_yd(0,0);
system("cls");
for(int i=0;i<24;i++)
{
cout<<mapp1[l][i]<<endl;
}
cout<<mapp1[l][24];
sb_yd(x,y);
cout<<z;
}
else
{
system("cls");
cout<<"刷新中...";
sb_ycksbj();
sb_yc();
system("title 跑酷游戏");
system("mode con cols=50 lines=25");
system("cls");
}
return;
}
void gq_dy(int l)
{
for(int i=0;i<24;i++)
{
cout<<mapp1[l][i];
}
cout<<mapp1[l][24];
return;
}
int gq_zt(bool pd)
{
if(pd)
{
system("cls");
cout<<"\n\n\n\n\n\n";
cout<<" 暂停中\n\n\n";
cout<<" 1.退出\n\n\n";
cout<<" 2.返回\n\n\n";
cout<<" 3.存档\n\n\n";
cout<<" 4.退出游戏";
a=0;
a=getch()-'0';
switch(a)
{
case 1 :
{
system("cls");
return a;
break;
}
case 2 :
{
system("cls");
return a;
break;
}
case 3 :
{
system("cls");
return a;
break;
}
case 4 :
{
system("cls");
cout<<endl<<endl<<" 再见! "<<endl<<endl;
_sleep(750);
system("cls");
exit(0);
break;
}
default:
{
break;
}
}
}
else
{
system("cls");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
cout<<" 暂停中"<<endl;
cout<<" 空格返回";
for(;;)
{
if(getch()==' ')
return 0;
}
}
return 0;
}
void gq_yx(int x,int y,char z,int l)
{
int x1=x,yy1=y,ax;
sb_yd(x1,yy1);
cout<<z;
for(;;)
{
if(kbhit()!=0)
{
ax=getch();
if(ax==224)
{
ax=getch();
if(ax==72)
{
for(int j=1;j<=4;j++)
{
_sleep(100);
if(yy1!=0&&mapp1[l][yy1-1][x1]==' '||mapp1[l][yy1-1][x1]=='$'&&mapp1[l][yy1-1][x1]!='|')
{
sb_yd(x1,yy1);
cout<<" ";
yy1--;
sb_yd(x1,yy1);
cout<<z;
if(kbhit()!=0)
{
ax=getch();
if(ax==224)
{
ax=getch();
if(ax==75)
{
if(x1!=0&&mapp1[l][yy1][x1-1]==' '||mapp1[l][yy1][x1-1]=='$'&&mapp1[l][yy1][x1-1]!='|')
{
x1--;
sb_yd(x1,yy1);
cout<<z<<" ";
}
}
if(ax==77)
{
if(x1!=49&&mapp1[l][yy1][x1+1]==' '||mapp1[l][yy1][x1+1]=='$'&&mapp1[l][yy1][x1+1]!='|')
{
sb_yd(x1,yy1);
cout<<" "<<z;
x1++;
}
}
}
if(ax==122||ax==90)
{
system("cls");
gq_sx(x1,yy1,z,l,1);
}
}
}
}
}
if(ax==75)
{
if(x1!=0&&mapp1[l][yy1][x1-1]==' '||mapp1[l][yy1][x1-1]=='$'&&mapp1[l][yy1][x1-1]!='|')
{
x1--;
sb_yd(x1,yy1);
cout<<z<<" ";
}
}
if(ax==77)
{
if(x1!=49&&mapp1[l][yy1][x1+1]==' '||mapp1[l][yy1][x1+1]=='$'&&mapp1[l][yy1][x1+1]!='|')
{
sb_yd(x1,yy1);
cout<<" "<<z;
x1++;
}
}
}
if(ax==122||ax==90)
{
system("cls");
gq_sx(x1,yy1,z,l,1);
}
}
while(mapp1[l][yy1+1][x1]==' '||mapp1[l][yy1+1][x1]=='$')
{
_sleep(100);
sb_yd(x1,yy1);
cout<<" ";
yy1+=1;
sb_yd(x1,yy1);
cout<<z;
if(kbhit()!=0)
{
ax=getch();
if(ax==224)
{
ax=getch();
if(ax==75)
{
if(x1!=0&&mapp1[l][yy1][x1-1]==' '||mapp1[l][yy1][x1-1]=='$'&&mapp1[l][yy1][x1-1]!='|')
{
x1--;
sb_yd(x1,yy1);
cout<<z<<" ";
}
}
if(ax==77)
{
if(x1!=49&&mapp1[l][yy1][x1+1]==' '||mapp1[l][yy1][x1+1]=='$'&&mapp1[l][yy1][x1+1]!='|')
{
sb_yd(x1,yy1);
cout<<" "<<z;
x1++;
}
}
}
if(ax==122||ax==90)
{
system("cls");
gq_sx(x1,yy1,z,l,1);
}
}
if(mapp1[l][yy1+1][x1]=='^'||mapp1[l][yy1][x1+1]=='<'||mapp1[l][yy1][x1-1]=='>')
{
sb_yd(x1,yy1);
cout<<" ";
x1=x;
yy1=y;
sb_yd(x1,yy1);
cout<<z;
}
}
if(mapp1[l][yy1+1][x1]=='=')
{
int jc=1;
for(int j=1;j<=8;j++)
{
if(mapp1[l][yy1-1][x1]==' ')
{
_sleep(10);
sb_yd(x1,yy1);
cout<<" ";
yy1--;
sb_yd(x1,yy1);
cout<<z;
if(kbhit()!=0)
{
ax=getch();
if(ax==224)
{
ax=getch();
if(ax==75)
{
if(x1!=0&&mapp1[l][yy1][x1-1]==' '||mapp1[l][yy1][x1-1]=='$'&&mapp1[l][yy1][x1-1]!='|')
{
x1--;
sb_yd(x1,yy1);
cout<<z<<" ";
}
}
if(ax==77)
{
if(x1!=49&&mapp1[l][yy1][x1+1]==' '||mapp1[l][yy1][x1+1]=='$'&&mapp1[l][yy1][x1+1]!='|')
{
sb_yd(x1,yy1);
cout<<" "<<z;
x1++;
}
}
}
if(ax==122||ax==90)
{
system("cls");
gq_sx(x1,yy1,z,l,1);
}
}
}
if(mapp1[l][yy1+1][x1]=='^'||mapp1[l][yy1][x1+1]=='<'||mapp1[l][yy1][x1-1]=='>')
{
sb_yd(x1,yy1);
cout<<" ";
x1=x;
yy1=y;
sb_yd(x1,yy1);
cout<<z;
}
}
}
if(mapp1[l][yy1+1][x1]=='^'||mapp1[l][yy1][x1+1]=='<'||mapp1[l][yy1][x1-1]=='>')
{
sb_yd(x1,yy1);
cout<<" ";
x1=x;
yy1=y;
sb_yd(x1,yy1);
cout<<z;
}
if(ax==120||ax==88)
{
switch(gq_zt(1))
{
case 0 :
{
break;
}
case 1 :
{
return;
break;
}
case 2 :
{
ax=0;
for(int i=0;i<24;i++)
{
cout<<mapp1[l][i]<<endl;
}
cout<<mapp1[l][24];
sb_yd(x1,yy1);
cout<<z;
break;
}
case 3 :
{
break;
}
case 4 :
{
system("cls");
system("mode con cols=15 lines=5");
cout<<endl<<endl<<" 再见! "<<endl<<endl;
_sleep(750);
system("cls");
exit(0);
break;
}
}
}
if(mapp1[l][yy1][x1]=='$')
{
_sleep(10);
system("cls");
sb_yd(0,0);
cout<<"你赢了!"<<endl;
cout<<"按空格返回。";
if(getch()==' ')
{
system("cls");
sb_yd(0,0);
return;
}
}
}
}
void g1()
{
cout<<endl<<endl;
cout<<"\n\n\n\n\n\n\n\n\n 第一关:新手教程。";
cout<<endl<<endl;
_sleep(500);
system("cls");
// gq_dy(0);
for(int i=0;i<24;i++)
{
cout<<mapp1[0][i]<<endl;
}
cout<<mapp1[0][24];
gq_yx(0,17,rw,0);
return;
}
void g2()
{
cout<<endl<<endl;
cout<<"\n\n\n\n\n\n\n\n\n 第二关:蹦床世界。"<<endl;
cout<<endl<<endl;
_sleep(500);
system("cls");
for(int i=0;i<24;i++)
{
cout<<mapp1[1][i]<<endl;
}
cout<<mapp1[1][24];
gq_yx(0,21,rw,1);
return;
}
void g3()
{
cout<<endl<<endl;
cout<<"\n\n\n\n\n\n\n\n\n 第三关:明枪易躲,暗箭难防(1)。"<<endl;
cout<<endl<<endl;
_sleep(500);
system("cls");
for(int i=0;i<24;i++)
{
cout<<mapp1[2][i]<<endl;
}
cout<<mapp1[2][24];
gq_yx(0,22,rw,2);
return;
}
void g4()
{
cout<<endl<<endl;
cout<<"\n\n\n\n\n\n\n\n\n 第四关:明枪易躲,暗箭难防(2)。"<<endl;
cout<<endl<<endl;
_sleep(500);
system("cls");
for(int i=0;i<24;i++)
{
cout<<mapp1[3][i]<<endl;
}
cout<<mapp1[3][24];
gq_yx(0,22,rw,3);
return;
}
void g5()
{
cout<<endl<<endl;
cout<<"\n\n\n\n\n\n\n\n\n 第五关:心跳刺方。";
cout<<endl<<endl;
_sleep(500);
system("cls");
for(int i=0;i<24;i++)
{
cout<<mapp1[4][i]<<endl;
}
cout<<mapp1[4][24];
gq_yx(23,0,rw,4);
return;
}
void g6()
{
cout<<endl<<endl;
cout<<"\n\n\n\n\n\n\n\n\n 第六关:飞得更高。";
cout<<endl<<endl;
_sleep(500);
system("cls");
for(int i=0;i<24;i++)
{
cout<<mapp1[5][i]<<endl;
}
cout<<mapp1[5][24];
gq_yx(0,22,rw,5);
return;
}
int hy()
{
if(c==0)
{
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n ============欢迎============ "<<endl;
c++;
_sleep(1000);
system("cls");
}
cout<<"\n\n\n\n\n\n\n 首页\n\n\n\n\n";
cout<<" 1.开始游戏\n\n\n\n";
cout<<" 2.退出";
a=0;
a=getch()-'0';
return a;
}
void gq()
{
for(;;)
{
cout<<"\n\n\n\n 关卡\n\n\n"<<endl;
cout<<" 1.新手教程 2.蹦床世界\n\n"<<endl;
cout<<" 3.明枪易躲,暗箭难防(1)\n\n"<<endl;
cout<<" 4.明枪易躲,暗箭难防(2)\n\n"<<endl;
cout<<" 5.心跳刺方 6.飞得更高\n\n"<<endl;
cout<<" 7.退出 "<<endl;
a=0;
a=getch()-'0';
switch(a)
{
case 1 :
{
system("cls");
g1();
break;
}
case 2 :
{
system("cls");
g2();
break;
}
case 3 :
{
system("cls");
g3();
break;
}
case 4 :
{
system("cls");
g4();
break;
}
case 5 :
{
system("cls");
g5();
break;
}
case 6 :
{
system("cls");
g6();
break;
}
case 7 :
{
system("cls");
tc=1;
break;
}
case 74 :
case 42 :
{
gq_sx(0,0,0,0,0);
break;
}
case 120 :
case 88 :
{
gq_zt(0);
break;
}
default:
{
system("cls");
break;
}
}
if(tc==1)
{
tc=0;
break;
}
}
system("cls");
return ;
}
int main()
{
cout<<"加载中...";
sb_ycksbj();
sb_yc();
system("title 跑酷游戏");
system("mode con cols=50 lines=25");
system("cls");
for(;;)
{
hy();
switch(a)
{
case 1 :
{
system("cls");
gq();
break;
}
case 2 :
{
system("cls");
system("mode con cols=15 lines=5");
cout<<endl<<endl<<" 再见! "<<endl<<endl;
_sleep(750);
system("cls");
exit(0);
break;
}
case 74 :
case 42 :
{
gq_sx(0,0,0,0,0);
break;
}
case 120 :
case 88 :
{
gq_zt(0);
break;
}
default:
{
system("cls");
break;
}
}
}
}