~~游戏~~(更新版,能玩就行!)
2024-07-28 20:55:44
发布于:浙江
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<cstdio>
using namespace std;
int x,y,Life=500,jjj=1,Cold=0,Money=100,pm=1;;
struct BOSS{
int x,y,life,cold,attack;
};
int att[100];
BOSS boss[100];
int bos;
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
int mp1[12][27]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{1,1,9,9,9,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1},//1
{1,1,9,9,9,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1},//2
{1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1},//3
{1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1},//4
{1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,1},//5
{1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,1,0,1,1,1},//6
{1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,1},//7
{1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1},//8
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//9
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//10
int pm2[12][27]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//1
{1,1,9,9,9,1,1,1,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1},//2
{1,1,9,9,9,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1},//3
{1,1,0,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1},//4
{1,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,1},//5
{1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,1},//6
{1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1},//7
{1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,1},//8
{1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,1},//9
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//10
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//11
int pm3[12][27]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//1
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1},
{1,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1},
{1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1},
{1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1},
{1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1},
{1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1},
{1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1},
{1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//10
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//11
int mp2[12][27]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
int mp3[12][27]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
bool check(int k){
if(k==1){return mp1[x-1][y]==0||mp1[x-1][y]==9;}
else if(k==2){return mp1[x+1][y]==0||mp1[x+1][y]==9;}
else if(k==3){return mp1[x][y-1]==0||mp1[x][y-1]==9;}
else if(k==4){return mp1[x][y+1]==0||mp1[x][y+1]==9;}
else if(k==11){jjj=1;}
else if(k==12){jjj=2;}
else if(k==13){jjj=3;}
else if(k==5&&Cold==0){
if(jjj==1){ Cold=5;mp2[x-1][y]=2;mp3[x-1][y]=10;}
else if(jjj==2){Cold=15;mp2[x-2][y]=2;mp2[x-1][y]=2;mp3[x-2][y]=10;mp3[x-1][y]=10;}
else if(jjj==3){
Cold=40;
for(int i=x-2;i<=x+2;i++){
for(int j=y-2;j<=y+2;j++){
mp2[i][j]=2;
mp3[i][j]=10;
}
}
}
}else if(k==6&&Cold==0){
if(jjj==1){
Cold=5;
mp2[x+1][y]=2;
mp3[x+1][y]=10;
}else if(jjj==2){
Cold=15;
mp2[x+2][y]=2;
mp2[x+1][y]=2;
mp3[x+2][y]=10;
mp3[x+1][y]=10;
}else if(jjj==3){
Cold=40;
for(int i=x-2;i<=x+2;i++){
for(int j=y-2;j<=y+2;j++){
mp2[i][j]=2;
mp3[i][j]=10;
}
}
}
}else if(k==7){
if(jjj==1){
Cold=5;
mp2[x][y-1]=2;
mp3[x][y-1]=10;
}else if(jjj==2){
Cold=15;
mp2[x][y-2]=2;
mp2[x][y-1]=2;
mp3[x][y-2]=10;
mp3[x][y-1]=10;
}else if(jjj==3){
Cold=40;
for(int i=x-2;i<=x+2;i++){
for(int j=y-2;j<=y+2;j++){
mp2[i][j]=2;
mp3[i][j]=10;
}
}
}
}else if(k==8){
if(jjj==1){
Cold=5;
mp2[x][y+1]=2;
mp3[x][y+1]=10;
}else if(jjj==2){
Cold=15;
mp2[x][y+2]=2;
mp2[x][y+1]=2;
mp3[x][y+2]=10;
mp3[x][y+1]=10;
}else if(jjj==3){
Cold=40;
for(int i=x-2;i<=x+2;i++){
for(int j=y-2;j<=y+2;j++){
mp2[i][j]=2;
mp3[i][j]=10;
}
}
}
}
}
void Bos(){
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int uiui=1;
for(int k=0;k<=bos;k++){
if(boss[k].life>0){
int xx=boss[k].x;
int yy=boss[k].y;
boss[k].life-=att[mp2[xx][yy]];
mp1[xx][yy]=0;
for(int i=0;i<4;i++){
if(xx+dx[i]==x&&yy+dy[i]==y){
mp2[x][y]=1;
mp3[x][y]=10;
boss[k].cold=3;
uiui=0;
}
}
if(uiui){
for(int i=xx-2;i<=xx+2;i++){
for(int j=yy-2;j<=yy+2;j++){
if(i==x&&j==y){
if(i>xx&&j==yy&&mp1[xx+1][yy]==0){boss[k].x++;uiui=0;}
else if(i<xx&&j==yy&&mp1[xx-1][yy]==0){boss[k].x--;uiui=0;}
else if(i==xx&&j>yy&&mp1[xx][yy+1]==0){boss[k].y++;uiui=0;}
else if(i==xx&&j<yy&&mp1[xx][yy-1]==0){boss[k].y--;uiui=0;}
else if(i<xx&&j<yy&&mp1[xx][yy+1]==0){boss[k].y++;uiui=0;}
else if(i<xx&&j>yy&&mp1[xx+1][yy]==0){boss[k].x++;uiui=0;}
else if(i>xx&&j>yy&&mp1[xx][yy+1]==0){boss[k].y++;uiui=0;}
else if(i>xx&&j<yy&&mp1[xx][yy-1]==0){boss[k].y--;uiui=0;}
break;
}
}
}
}
if(uiui){
srand(time(NULL)*time(NULL));
if(rand()%2==0){
for(int i=0;i<4;i++){
if(mp1[xx+dx[i]][yy+dy[i]]==0){
mp1[xx][yy]=0;
boss[k].x+=dx[i];
boss[k].y+=dy[i];
mp1[boss[k].x][boss[k].y]=2;
break;
}
}
}else{
for(int i=3;i>=0;i--){
if(mp1[xx+dx[i]][yy+dy[i]]==0){
mp1[xx][yy]=0;
boss[k].x+=dx[i];
boss[k].y+=dy[i];
mp1[boss[k].x][boss[k].y]=2;
break;
}
}
}
}
mp1[boss[k].x][boss[k].y]=2;
}
if(boss[k].life<=0&&boss[k].x!=-1&&boss[k].y!=-1){
mp1[boss[k].x][boss[k].y]=0;
Money+=10;
boss[k].x=-1;
boss[k].y=-1;
boss[k].life=0;
}
}
}
void ATTACK(){
Life-=att[mp2[x][y]];
if(Cold!=0){
Cold--;
}
}
void tptp(){
if(mp1[x][y]==9&&pm==1){
for(int i=0;i<=12;i++){
for(int j=0;j<=27;j++){
mp1[i][j]=pm2[i][j];
}
}
x=7;y=23;Life=1000;
boss[0].x=2;boss[0].y=14;boss[0].life=100;
boss[1].x=2;boss[1].y=12;boss[1].life=100;
boss[2].x=2;boss[2].y=24;boss[2].life=100;
boss[3].x=2;boss[3].y=22;boss[3].life=100;
bos=3;
pm++;
}else if(mp1[x][y]==9&&pm==2){
for(int i=0;i<=12;i++){
for(int j=0;j<=27;j++){
mp1[i][j]=pm3[i][j];
}
}
att[1]=50;
x=7;y=23;Life=1000;
boss[0].x=2;boss[0].y=14;boss[0].life=500;
boss[1].x=2;boss[1].y=12;boss[1].life=500;
boss[2].x=2;boss[2].y=24;boss[2].life=500;
boss[3].x=2;boss[3].y=22;boss[3].life=500;
boss[4].x=4;boss[4].y=22;boss[4].life=500;
bos=4;
}
}
void Input(){
while(_kbhit()){
char a=_getch();
if(a=='w'&&check(1)){x--;}
else if(a=='s'&&check(2)){x++;}
else if(a=='a'&&check(3)){y--;}
else if(a=='d'&&check(4)){y++;}
else if(a=='1'){check(11);}
else if(a=='2'){check(12);}
else if(a=='3'){check(13);}
else if(a=='u'){check(5);}
else if(a=='j'){check(6);}
else if(a=='h'){check(7);}
else if(a=='k'){check(8);}
}
}
void Print(){
cout<<"生命:"<<Life<<" 技能:"<<jjj<<" 冷却:"<<Cold<<" 金钱:"<<Money<<endl;
for(int i=0;i<=bos;i++){
cout<<boss[i].life<<"/";
}
cout<<endl;
for(int i=0;i<=12;i++){
for(int j=0;j<=27;j++){
if(i==x&&j==y){
color(9);
cout<<"+";
color(7);
}else if(mp1[i][j]==9){
color(11);
cout<<"%";
color(7);
}else if(mp1[i][j]==1){
cout<<"I";
}else if(mp1[i][j]==2){
color(2);
cout<<"S";
color(7);
}else if(mp1[i][j]==0){
if(mp2[i][j]==1){
color(4);
cout<<"A";
color(7);
}else if(mp2[i][j]==2){
color(3);
cout<<"x";
color(7);
}else{
color(5);
cout<<"#";
color(7);
}
}
}
cout<<endl;
}
}
void jjnn(){
for(int i=0;i<=12;i++){
for(int j=0;j<=27;j++){
if(mp3[i][j]!=0){
mp3[i][j]--;
}else{
mp2[i][j]=0;
}
}
}
}
int main(){
att[1]=5;
att[2]=8;
x=7;y=23;Life=500;
boss[0].x=6;boss[0].y=6;boss[0].life=50;
boss[1].x=3;boss[1].y=11;boss[1].life=50;
boss[2].x=2;boss[2].y=11;boss[2].life=50;
boss[3].x=3;boss[3].y=12;boss[3].life=50;
boss[4].x=3;boss[4].y=23;boss[4].life=50;
bos=4;
int ttime=0;
while(1){
ttime++;
tptp();
Print();
ATTACK();
Input();
if(ttime==5){
Bos();
if(Life<500){
Life++;
}
ttime=0;
}
jjnn();
if(Life<=0){
cout<<"你死了!";
break;
}
Sleep(1);
system("cls");
}
return 0;
}
这里空空如也
有帮助,赞一个