c++实现《忍者必须死》

  • lgy2024
    了解作者
  • C/C++
    开发工具
  • 10.6KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2022-08-19 22:30
    上传日期
c++控制台小游戏,击杀最终Boss即可通关,感谢支持!
game.rar
  • game.cpp
    53KB
内容介绍
#include<bits/stdc++.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> #define Nor if(B[b].x<5) B[b].x=5; #define Out1 Bx1-Bvx1<=6||Bx1-Bvx1>=28||By1-Bvy1<=7||By1-Bvy1>=27 #define Out2 Bx2-Bvx2<=6||Bx2-Bvx2>=28||By2-Bvy2<=7||By2-Bvy2>=27 #define Chang1 {Bwhat1=0;Bvx1=Bvy1=0;memset(Bgo1,0,sizeof(Bgo1));} #define Chang2 {Bwhat2=0;Bvx2=Bvy2=0;memset(Bgo2,0,sizeof(Bgo2));} #define Chang3 {Bwhat3=0;Bvx3=Bvy3=0;memset(Bgo3,0,sizeof(Bgo3));} using namespace std; int ti(float a) { return ((int)(a*10+5))/10; } void Setpos(float x,float y) { COORD pos; pos.X=ti(y*4)/2; pos.Y=ti(x); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); } void Color(int a) { if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); 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_GREEN); if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE); if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_BLUE); if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_BLUE); if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE); if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN); if(a==13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY); if(a==14) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE); } int Blomax,Ren,Exp,Expmax,Lv,Lvl,Ice,Drug,ar1,ar2,Tar1,Tar2,bl,br,Win,T,Tb,Sy,Up,Upt,Down,u1,u2,Kill,Killb,L,Ll[4],Li,D,Gd[10],Biao,Fire,Fir,Water,Thun,Wind,Magne,I[20][2],ib,Dis,Disb,Dis1,Disb1,Boss,Bblo,Bblomax,Bwhat1,Bwhat2,Bwhat3,Bgo1[10],Bgo2[10],Bgo3[10],Bbr,Bbl,Bl[4]; float X,Y,Vx,Vy,Ding,Blo,Hui,Bx1,By1,Bx2,By2,Bx3,By3,Bvx1,Bvy1,Bvx2,Bvy2,Bvx3,Bvy3,Bway[1001][2]; struct bullet { float x,y,vx,vy; int what; int a,t,How; int life; bool kill; } B[100001]; void Map(int a,int b); void Pan(int a,float x,float y,int b) { float Nox[4],Noy[4]; Nox[0]=X,Noy[0]=Y; if(Down==1&&X==22) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; else if(Down==2) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10; else if(Down==1||X<18) Nox[1]=X-1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10; else Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; for(int i=0; i<3; i++) { if(a==-1) { if(abs(x-Nox[i])+abs(y-Noy[i])<1.5) { if(B[b].what==-10)Exp+=2; if(B[b].what==-11)Exp+=1; B[b].life=0; if(B[b].life==0&&b==bl) bl++; Map(3,b); break; } } if(a==-2) { if(abs(x-Nox[i])+abs(y-Noy[i])<2.5) { if(B[b].what==-2)Exp+=20,Biao+=20; if(B[b].what==-3)Fire=1000000,Ice=10000000,Fir=10000000; if(B[b].what==-4)Water=10000000; if(B[b].what==-5) { Wind=10; Ding=10000000; Ice=10000000; if(Y<Ding-1)Vy=5; else Vy=0; if(Up>=1) Vx=-5; if(Down==2) Vx=5; } if(B[b].what==-6) { Thun=200; system("color 1F"); Sleep(20); system("color 6F"); Sleep(10); system("color 0F"); } if(B[b].what==-7)Magne=300; if(B[b].what==-8)Ice=0,Drug=0,Blo=fmin((float)Blomax,Blo+20); if(B[b].what==-9)Exp=fmin((float)Expmax,Exp+20); B[b].life=0; if(B[b].life==0&&b==bl) bl++; Map(3,b); break; } } } if(Wind==0&&Thun==0&&(B[b].kill!=0||Killb>=15||Ren==1&&Killb>0)) return; for(int i=0; i<3; i++) { if((Wind>=1||Thun>=1)&&abs(x-Nox[i])+abs(y-Noy[i])<2.5) { if(B[b].what<98)Exp+=2; B[b].life=0; Map(3,b); break; } if(a==1) { if(abs(x-Nox[i])<0.5&&abs(y-Noy[i])<1) { if(B[b].what>=99)Blo-=10; if(B[b].what==14)Blo-=15,Ice=100,B[b].life=0; else if(B[b].what==15)Blo-=20,Ice=0,B[b].life=0; else if(B[b].what==17)Blo-=5,Drug=100,B[b].life=0; else if(B[b].what>=13&&B[b].what<=17)Blo-=10,B[b].life=0; else Blo-=15; B[b].kill=1,Killb=20; Kill=1; Map(3,b); break; } } if(a==2||a==6||a==8||a==9||a==10||a==11||a==12) { if(abs(x-Nox[i])+abs(y-Noy[i])<1.5) { if(a==2)Blo-=20; else if(a==8)Blo-=10; else Blo-=15; B[b].kill=1,Killb=20; Kill=1; if(a!=2) { B[b].life=0; if(B[b].life==0&&b==bl) bl++; Map(3,b); break; } } } if(a==4) { if((Wind>=1||Thun>=1)&&abs(x-Nox[i])<1.5&&Noy[i]-y<=0&&Noy[i]-y>=-8) { if(B[b].what<98)Exp+=2; B[b].life=0; Map(3,b); break; } if(abs(x-Nox[i])<1&&Noy[i]-y<=0&&Noy[i]-y>=-8) { Blo-=25,B[b].kill=1,Killb=20; Kill=1; Vy=-1; Y-=0.5; break; } } } } void Map(int a,int b) { Color(0); if(a==-1) { if(Boss==1||Boss==6) { if(Bwhat1==5) { if(ti(Bx1)==20)Setpos(Bx1,By1),cout<<"=="; else Setpos(Bx1,By1),cout<<" "; } else { Setpos(Bx1-1,By1-0.5),cout<<" "; Setpos(Bx1,By1-1),cout<<" "; Setpos(Bx1+1,By1-0.5),cout<<" "; if(abs(ti(Bx1)-20)<=1)Setpos(20,By1-1),cout<<"======"; } } if(Boss==2||Boss==6) { Setpos(Bx2-1,By2-1); cout<<" "; Setpos(Bx2,By2-1); cout<<" "; Setpos(Bx2+1,By2-1),cout<<" "; Color(0); if(abs(ti(Bx2)-20)<=1)Setpos(20,By2-1),cout<<"======"; } if(Boss==3||Boss==6) { Setpos(Bx3-1,By3-0.5); cout<<" "; Setpos(Bx3,By3); cout<<" "; Setpos(Bx3+1,By3-1),cout<<" "; Color(0); if(abs(ti(Bx3)-20)<=1)Setpos(20,By3-1),cout<<"======="; } if(X<0)return; if(X>=17&&X<=19) { Setpos(X-1,Y); cout<<" "; Setpos(X,Y-1); cout<<" "; Setpos(X+1,Y-1),cout<<" "; } else if(X<=23&&X>=21) { Setpos(X+1,Y); cout<<" "; Setpos(X,Y-1); cout<<" "; Setpos(X-1,Y-1),cout<<" "; } else if(X>23) { Setpos(X,Y-1); cout<<" "; Setpos(X-1,Y-0.5),cout<<" "; } else if(X<17&&Upt!=0) { Setpos(X,Y-1); cout<<" "; Setpos(X+1,Y-1.5),cout<<" "; } else if(X<17) { Setpos(X,Y-1); cout<<" "; Setpos(X+1,Y-0.5),cout<<" "; } if(Thun>0) { Setpos(X-2,Y-1),cout<<" "; Setpos(X+2,Y-1),cout<<" "; Setpos(X,Y+2),cout<<" "; Setpos(X,Y-2.5),cout<<" "; Setpos(X-1,Y+1),cout<<" "; Setpos(X+1,Y+1),cout<<" "; Setpos(X-1,Y-2),cout<<" "; Setpos(X+1,Y-2),cout<<" "; Setpos(20,Y-2.5),cout<<"============"; } if(Wind!=0) { Setpos(X+1,Y-5); cout<<" "; Setpos(X,Y-5); cout<<" "; Setpos(X-1,Y-5); cout<<" "; Setpos(20,Y-5),cout<<"========"; } if(Water!=0) { Setpos(X,Y-4); cout<<" "; Setpos(X+2,Y-3.5); cout<<" "; Setpos(X-2,Y-3.5); cout<<" "; Setpos(X+1,Y-3.5); cout<<" "; Setpos(X-1,Y-3.5); cout<<" "; Setpos(20,Y-5),cout<<"========"; } if(Fire!=0) { Setpos(X,Y+1),cout<<" "; Setpos(X+1,Y),cout<<" "; Setpos(X-1,Y-1),cout<<" "; Setpos(20,Y-1); cout<<"======"; } } if(a==0) { if(Boss==1||Boss==6) { if(Bwhat1==5)Color(5),Setpos(Bx1,By1),cout<<"��",Color(0);
评论
    相关推荐
    • WP7连连看游戏
      该源码实现一款现在很流行的一种游戏,WP7连连看游戏游戏玩法很简单,只要我们需要找到相同的两张牌用三根以内的直线连在一起就可以消除,非常好玩,并且游戏的源码比较齐全,喜欢wp游戏开发的朋友可以下载学习看...
    • H5游戏实战
      H5游戏 HTM5 游戏开发实战.pdf
    • 贪吃蛇游戏
      适合刚学完javase项目的人锻炼代码能力
    • matador:游戏游戏游戏
      斗牛士 @sambwrs 的游戏开发中 正在使用的库慢跑卢阿瓦
    • TankWar小游戏
      游戏开发文档及代码。。。 菜单项可以选择开始新游戏,退出,暂停,继续,帮助功能,对于开始新游戏,退出两个功能,要给出提示,用户是否真的想继续操作!
    • 游戏引擎
      游戏引擎(未命名)
    • 游戏程序设计
      使用VC6.0开发的一款游戏程序,地图无限大,人物运动及人物升级设计都有,适合初学游戏程序设计的同学,简单的尝试一些游戏代码的功能
    • 打字游戏程序
      游戏运用到了线程和集合,使用的集合是Dictionary,它用于存放存放所有运行中的线程,而游戏中出现的字母是定义了Label控件,产生随机数的方法实现的,而让字母自由落下用的timer控件,调用它的线程并对自由下落...
    • 网络 游戏 引擎 游戏引擎下载
      网络 游戏 引擎 游戏引擎下载网络 游戏 引擎 游戏引擎下载网络 游戏 引擎 游戏引擎下载网络 游戏 引擎 游戏引擎下载网络 游戏 引擎 游戏引擎下载网络 游戏 引擎 游戏引擎下载网络 游戏 引擎 游戏引擎下载网络 游戏 ...
    • chunzhou游戏开发
      游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发游戏开发...