按键功能在游戏里有
本人垃圾,不喜勿喷
代码
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
const int n=11;
int f=-10000000;
#define ll long long
void SetColorAndBackground(int ForgC, int BackC)
{
WORD wColor=((BackC&0x0F)<<4)+(ForgC&0x0F);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),wColor);
}
ll Rand(ll x,ll y)
{
ll n=y-x+1,k;
srand(time(NULL)+f);
f++;
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
k=rand();srand(k);k=rand();srand(k);k=rand();srand(k);
return x+(rand()%n);
}
int main()
{
start:
system("color f0");
system("mode con cols=34 lines=19");//这里的参数要自己调n*2+4 n+4
int ss=0,z=-100000,i,j,q,v=10,r=0,o=0,x=n,y=6,k=0,fff=0,wd=0,b[n+1][n+1]={0},a[n+2][n+2]=
{
1,1,1,1,1,1,1,1,1,1,1,1,1,
1,0,0,0,2,0,0,0,0,0,0,0,1,
1,0,0,2,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,2,0,0,1,
1,0,0,0,0,0,0,0,0,0,2,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,1,1
};
while(1)
{
system("cls");
SetColorAndBackground(0,15);
cout<<"A D ←→移动↑加速W 无敌C 重置\n";
if(k==1)
{
a[1][Rand(1,n)]=2;
k=0,ss=0;
}
if(fff==30)
{
a[1][Rand(1,n)]=2;
fff=0;
}
if(wd==1)cout<<"无敌模式 空格发射炮弹\n";
else cout<<"生存模式 空格发射炮弹\n";
for(i=0;i<=n+1;i++)
{
for(j=0;j<=n+1;j++)
{
if(i==x&&j==y)
{
if(a[i][j]==2)
{
if(wd==0)
{
o=1;
SetColorAndBackground(4,15);
printf("死");
}
else
{
SetColorAndBackground(12,15);
printf("▓ ");
}
}
else
{
SetColorAndBackground(4,15);
printf("●");
}
}
else if(a[i][j]>2||a[i][j]==0)
printf(" ");
else if(a[i][j]==1)
{
SetColorAndBackground(6,15);
printf("█ ");
}
else if(a[i][j]==2)
{
SetColorAndBackground(12,15);
printf("▓ ");
}
else if(a[i][j]==-1)
{
SetColorAndBackground(1,15);
printf("∧");
}
}
printf("\n");
}
if(o==1)
{
Sleep(2000);
system("cls");
SetColorAndBackground(4,15);
cout<<"You Dead!\n\n\n";
Sleep(500);
system("cls");
goto start;
}
q=0;
for(i=1;i<=10;i++)
if(kbhit())
{
q=1;
char s=_getch();
switch(s)
{
case ' ':
{
a[x-1][y]=-1;
break;
}
case 'c':
{
system("cls");
goto start;
}
case 80:
{
r+=1.0/v*10;
break;
}
case 'a':
{
if(y==1)y=n;
else y--;
break;
}
case 'd':
{
if(y==n)y=1;
else y++;
break;
}
case 75:
{
if(y==1)y=n;
else y--;
break;
}
case 77:
{
if(y==n)y=1;
else y++;
break;
}
case 'w':
{
wd=!wd;
break;
}
}
}
Sleep(50);
r++;
if(r>=1.0/v*5)
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==-1)
{
a[i][j]=0;
if(a[i-1][j]==2)a[i-1][j]=0,b[i-1][j]=0,ss++;
else if(i>1)
a[i-1][j]=-1;
}
}
if(r>=1.0/v*10)
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]>2)a[i][j]--;
else if(a[i][j]==2)
{
if(i!=n)b[i+1][j]=2;
else ss++;
a[i][j]=0;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]==2)a[i][j]=2,b[i][j]=0;
else if(b[i][j]==-1)a[i][j]=-1,b[i][j]=0;
r=0;
fff++;
}
if(ss>=1)k=1;
}
return 0;
}