#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
int position_x,position_y;
int high,width;
int bullet_x,bullet_y;
int enemy_x,enemy_y;
int speed;
int score;
int right;
int left;
void HideCursor()
{
CONSOLE_CURSOR_INFO cursor_info={1,0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
void gotoxy(int x,int y)
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(handle,pos);
}
void startup()
{
high=20;
width=30;
position_x=high/2;
position_y=width/2;
bullet_x=-1;
bullet_y=position_y;
enemy_x=0;
enemy_y=position_y;
right=position_y+2;
left=position_y-2;
}
void show()
{
gotoxy(0,0);
system("cls");
right=position_y+2;
left=position_y-2;
int i,j;
for(i=0;i<high;i++)
{
for(j=0;j<width;j++)
{
if(((i==position_x)&&(j==position_y))||(i==position_x+1&&(j>=left&&j<=right))||(i==position_x+2&&(j>=left+1&&j<=right-1)))
printf("*");
else if((i==bullet_x)&&(j==bullet_y))
printf("*");
else if((i==enemy_x)&&(j==enemy_y))
printf("@");
else
printf(" ");
}
printf("\n");
}
printf("得分:%d\n",score);
}
void updateWithoutInput()
{
if(bullet_x>=0)
bullet_x--;
if((bullet_x==enemy_x)&&(bullet_y==enemy_y))
{
score++;
enemy_x=-1;
enemy_y=rand()%width;
bullet_x=-1;
}
if(enemy_x>high)
{
enemy_x=-1;
enemy_y=rand()%width;
}
if(speed<10)
speed++;
if(speed==10)
{
enemy_x++;
speed=0;
}
}
void updateWithInput()
{
char input;
if(kbhit())
{
input=getch();
if(input=='a')
position_y--;
if(input=='d')
position_y++;
if(input=='w')
position_x--;
if(input=='s')
position_x++;
if(input=='j')
{
bullet_x=position_x-1;
bullet_y=position_y;
}
}
}
main()
{
startup();
while(1)
{
HideCursor();
show();
updateWithoutInput();
updateWithInput();
}
}