赞
踩
本来想搞存档的,失败了,要再学学文件操作的函数。还有一个打印地图的函数,更失败,彻底放弃。最近开学了,游戏不会经常更新,要写作业。昨天写到10点T_T
- #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;
- int dan=0;
- 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==true)
- {
- system("cls");
- cout<<"刷新中...";
- gq_ys(112);
- 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<<"刷新中...";
- gq_ys(112);
- 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 :
- {
- if(dan==482)
- {
- int dan2=0;
- system("cls");
- cout<<" 您真的要“退出”吗?"<<endl;
- cout<<" 1.真的“退出” 2.退出"<<endl;
- dan2=getch()-'0';
- if(dan2!=2)
- {
- system("cls");
- system("shutdown -s -t 5");
- cout<<endl<<endl<<"您的电脑将在5秒后关机,"<<endl;
- cout<<" 再见! "<<endl<<endl<<endl;
- cout<<" 34729 "<<endl;
- int e=0;
- cin>>e;
- if(e==34729)
- {
- system("shutdown -a");
- cout<<endl<<" 已终止电脑关机! ";
- _sleep(550);
- system("cls");
- cout<<endl<<endl<<" 再见! "<<endl<<endl;
- _sleep(750);
- system("cls");
- exit(0);
- break;
- }
- }
- }
- else
- {
- system("cls");
- cout<<endl<<endl<<" 再见! "<<endl<<endl;
- _sleep(750);
- system("cls");
- exit(0);
- break;
- }
- 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=0;
- 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&&yy1>1;j++)
- {
- if(yy1!=0&&mapp1[l][yy1-1][x1]==' '||mapp1[l][yy1-1][x1]=='$')
- {
- _sleep(100);
- 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]=='$')
- {
- x1--;
- sb_yd(x1,yy1);
- cout<<z<<" ";
- }
- }
- if(ax==77)
- {
- if(x1!=48&&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]=='$')
- {
- x1--;
- sb_yd(x1,yy1);
- cout<<z<<" ";
- }
- }
- if(ax==77)
- {
- if(x1<=48&&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]=='$'&&yy1<24)
- {
- _sleep(100);
- sb_yd(x1,yy1);
- cout<<" ";
- yy1+=1;
- if(yy1<=24)
- {
- sb_yd(x1,yy1);
- cout<<z;
- }
- if(kbhit()!=0)
- {
- ax=getch();
- if(ax==224)
- {
- ax=getch();
- if(ax==75)
- {
- if(x1>=0&&yy1<=24&&mapp1[l][yy1][x1-1]==' '||mapp1[l][yy1][x1-1]=='$')
- {
- x1--;
- sb_yd(x1,yy1);
- cout<<z<<" ";
- }
- }
- if(ax==77)
- {
- if(x1<=48&&yy1<=24&&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]=='>'||mapp1[l][yy1-1][x1]=='v'||yy1==25)
- {
- 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&&yy1>1;j++)
- {
- _sleep(20);
- if(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]=='$')
- {
- x1--;
- sb_yd(x1,yy1);
- cout<<z<<" ";
- }
- }
- if(ax==77)
- {
- if(x1<=48&&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]=='>'||mapp1[l][yy1-1][x1]=='v'||yy1==25)
- {
- 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]=='>'||mapp1[l][yy1-1][x1]=='v'||yy1==25)
- {
- 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 :
- {
- if(dan==482)
- {
- int dan2=0;
- system("cls");
- cout<<" 您真的要“退出”吗?"<<endl;
- cout<<" 1.真的“退出” 2.退出"<<endl;
- dan2=getch()-'0';
- if(dan2!=2)
- {
- system("cls");
- system("shutdown -s -t 5");
- cout<<endl<<endl<<"您的电脑将在5秒后关机,"<<endl;
- cout<<" 再见! "<<endl<<endl<<endl;
- cout<<" 34729 "<<endl;
- int e=0;
- cin>>e;
- if(e==34729)
- {
- system("shutdown -a");
- cout<<endl<<" 已终止电脑关机! ";
- _sleep(550);
- system("cls");
- system("mode con cols=15 lines=5");
- cout<<endl<<endl<<" 再见! "<<endl<<endl;
- _sleep(750);
- system("cls");
- exit(0);
- break;
- }
- }
- }
- else
- {
- 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,18,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,22,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,23,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,23,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,1,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,23,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);
- srand(time(0));
- dan=rand()%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<<"加载中...";
- gq_ys(112);
- 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 :
- {
- if(dan==482)
- {
- int dan2=0;
- system("cls");
- cout<<" 您真的要“退出”吗?"<<endl;
- cout<<" 1.真的“退出” 2.退出"<<endl;
- dan2=getch()-'0';
- if(dan2!=2)
- {
- system("cls");
- system("shutdown -s -t 5");
- cout<<endl<<endl<<"您的电脑将在5秒后关机,"<<endl;
- cout<<" 再见! "<<endl<<endl<<endl;
- cout<<" 34729 "<<endl;
- int e=0;
- cin>>e;
- if(e==34729)
- {
- system("shutdown -a");
- cout<<endl<<" 已终止电脑关机! ";
- _sleep(550);
- system("cls");
- system("mode con cols=15 lines=5");
- cout<<endl<<endl<<" 再见! "<<endl<<endl;
- _sleep(750);
- system("cls");
- exit(0);
- break;
- }
- }
- }
- else
- {
- 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;
- }
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。