热度 1
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <cstdlib>
#include <iostream>
int main()
{
int i, j;
int x = 5;
int y = 10;
char input;
int bazi = rand() % 11; //rand() % 11
int w = 1;
int iskilled = 0; //判断靶子是否被消灭
int fs = 0;
int isfire = 0;
while (1)
{
system("cls");
//分数板
std::cout << "======目前分数: " << fs <<"======" << std::endl;
//创建靶子
if (!iskilled)
{
bazi = bazi + w;
for (i = 0; i < bazi; i++)
{
printf(" ");
}
printf("+");
if (bazi == 20)
{
w = -1;
}
if (bazi == 0)
{
w = 1;
}
iskilled = 0;
}
if (iskilled == 1)
{
printf("\n");
fs++;
iskilled = 0;
}
if (isfire == 0) //不开火
{
for (i = 0; i < x; i++)
printf("\n");
}
else //开火
{
for (i = 0; i < x; i++)
{
for (j = 0; j < y - 1; j++)
{
printf(" ");
}
printf(" ");
printf("|");
printf("\n");
}
if (y == bazi)
{
iskilled = 1;
}
}
//飞机左边的空格
for (j = 0; j < y; j++)
printf(" ");
printf("*\n");
for (j = 0; j < y - 3; j++)
printf(" ");
printf(" ***** \n");
for (j = 0; j < y - 2; j++)
printf(" ");
printf(" * * \n");
if (_kbhit()) //不能直接写if (kbhit()),会报错,下面的getch函数也一样
{
input = _getch();
if (input == 'a')
y--;
if (input == 'd')
y++;
if (input == 'w')
x--;
if (input == 's')
x++;
if (input == 'j')
isfire = 1;
else
isfire = 0;
}
}
}