按q攻击 按箭头进行控制 玩家是@ 怪是* 攻击是^
cpp
#include<bits/stdc++.h>
#include<Windows.h>
#include<conio.h>
#define fr(i,a,b) for(int i=a;i<=b;i++)
#define rd(a,b) rand()%(b-a+1)+a
using namespace std;
int x=16,y=21,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1},timeand,defe,times_q;
int b[2][1100000],q1=1,z1,times,vik[1100000];
int c[2][1100000],q2=1,z2,vis[1100000];
const int N=30,M=40;
void color(int clr)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),clr);
}
void gb_close()
{
CONSOLE_CURSOR_INFO cur;
cur.dwSize=1;
cur.bVisible=FALSE;
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle,&cur);
}
void gb_jump(int x,int y)
{
gb_close();
COORD pos;
pos.X=x;
pos.Y=y;
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(handle,pos);
gb_close();
}
void print()
{
color(11);
for(int i=1;i<=M+1;i++)
{
gb_jump(i,1);
printf("_");
}
for(int i=2;i<=N+1;i++)
{
gb_jump(1,i);
printf("|");
gb_jump(M+1,i);
printf("|");
}
for(int i=2;i<=M;i++)
{
gb_jump(i,N+1);
printf("_");
}
gb_jump(50,15);
printf("得分:%d",defe);
color(7);
}
void make()
{
b[0][++z1]=2;
b[1][z1]=rd(2,40);
}
void make2()
{
c[0][++z2]=x-1;
c[1][z2]=y;
}
void KO()
{
system("cls");
color(4);
printf(" | / _____ \n");
printf(" | / / \\ \n");
printf(" | / / \\ \n");
printf(" | / | | \n");
printf(" | / | | \n");
printf(" | / | | \n");
printf(" | / | | \n");
printf(" |/ | | 得分:%d \n",defe/30);
printf(" |\\ | | \n");
printf(" | \\ | | \n");
printf(" | \\ | | \n");
printf(" | \\ | | \n");
printf(" | \\ | | \n");
printf(" | \\ \\ / \n");
printf(" | \\ \\ / \n");
printf(" | \\ \\____/ \n");
color(0);
Sleep(100000);
exit(0);
}
int main()
{
system("mode con cols=3000 lines=200");
srand(time(NULL));
system("pause");
system("cls");
printf("选择难度:\n1.入门 2.普通 3.较难 4.地狱\n");
int qjqjq;
scanf("%d",&qjqjq);
if(qjqjq==1)
{
timeand=2e4;
}
else if(qjqjq==2)
{
timeand=1e4;
}
else if(qjqjq==3)
{
timeand=5e3;
}
else if(qjqjq==4)
{
timeand=2e3;
}
else
{
system("cls");
return 0;
}
system("cls");
printf("开始");
Sleep(3000);
system("cls");
print();
gb_jump(y,x);
color(6);
printf("@");
color(7);
while(true)
{
if(times_q>=100)
{
system("cls");
color(4);
printf("吃屎吧!!!!!!!!!!!!!");
Sleep(10000000);
return 0;
}
while(!kbhit())
{
times++;
if(times>=timeand)
{
color(6);
gb_jump(y,x);
printf("@");
color(7);
defe++;
color(11);
gb_jump(50,15);
printf("得分:%d",defe/30);
color(7);
times=0;
make();
for(int i=q1;i<=z1;i++)
{
if(vik[i])
{
continue;
}
if(b[0][i]>=N)
{
q1++;
gb_jump(b[1][i],b[0][i]);
printf(" ");
continue;
}
gb_jump(b[1][i],b[0][i]);
printf(" ");
b[0][i]++;
gb_jump(b[1][i],b[0][i]);
if(b[0][i]==x&&b[1][i]==y)
{
KO();
}
bool flag=0;
for(int j=q2;j<=z2;j++)
{
if(vis[j]==0&&b[0][i]==c[0][j]&&b[1][i]==c[1][j])
{
vik[i]=1;
vis[j]=1;
flag=1;
gb_jump(c[1][j],c[0][j]);
printf(" ");
break;
}
}
if(!flag)
{
color(13);
gb_jump(b[1][i],b[0][i]);
printf("*");
color(7);
}
}
for(int i=q2;i<=z2;i++)
{
if(vis[i])
{
continue;
}
if(c[0][i]<=2)
{
q2++;
gb_jump(c[1][i],c[0][i]);
printf(" ");
continue;
}
gb_jump(c[1][i],c[0][i]);
printf(" ");
c[0][i]--;
gb_jump(c[1][i],c[0][i]);
bool flag2=0;
for(int j=q1;j<=z1;j++)
{
if(vik[j]==0&&b[0][j]==c[0][i]&&b[1][j]==c[1][i])
{
vik[j]=1;
vis[i]=1;
flag2=1;
gb_jump(b[1][i],b[0][i]);
printf(" ");
break;
}
}
if(!flag2)
{
color(10);
printf("^");
color(7);
}
}
}
}
char tsg=getch();
if(tsg=='a')
{
char lk=getch();
while(lk!='a')
{
lk=getch();
}
continue;
}
if(tsg=='q')
{
times_q++;
make2();
continue;
}
char k=getch();
if(k!=72&&k!=75&&k!=77&&k!=80&&k!='a'&&k!='q')
{
continue;
}
gb_jump(y,x);
printf(" ");
if(k==72)
{
if(x>2)
{
x--;
}
}
if(k==75)
{
if(y>2)
{
y--;
}
}
if(k==77)
{
if(y<M)
{
y++;
}
}
if(k==80)
{
if(x<N)
{
x++;
}
}
gb_jump(y,x);
color(6);
printf("@");
color(7);
}
return 0;
}