scanf控制飞机
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j;
int x = 5;
int y = 10;
char input;
while(1)
{
system("cls");
for(i = 0; i < x; i++)
printf("\n");
for(j = 0; j < y; j++)
printf(" ");
printf("*");
printf("\n");
scanf("%c", &input);
if(input == 'a')
y--;
if(input == 'd')
y++;
if(input == 'w')
x--;
if(input == 's')
x++;
}
return 0;
}
很明显,你需要输入字母后再敲击回车,这样游戏体验感非常不好,所以我们引入getch函数
getch控制飞机移动
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
int i, j;
int x = 5;
int y = 10;
char input;
while(1)
{
system("cls");
for(i = 0; i < x; i++)
printf("\n");
for(j = 0; j < y; j++)
printf(" ");
printf("*\n");
if(kbhit()) //判断是否有输入
{ //用户有键盘输入时返回1,否则返回0
input = getch(); //不需要回车就可以得到输入的控制字符
if(input == 'a')
y--;
if(input == 'd')
y++;
if(input == 'w')
x--;
if(input == 's')
x++;
}
}
return 0;
}
有没有觉得我们的飞机太丑了,只有一个点,那么我们来升级一下
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
int i, j;
int x = 5;
int y = 10;
char input;
while(1)
{
system("cls");
for(i = 0; i < x; i++)
printf("\n");
for(j = 0; j < y; j++)
printf(" ");
printf("*\n");
for(j = 0; j < y - 2; j++)
printf(" ");
printf(" * *\n");
for(j = 0; j < y - 2; j++)
printf(" ");
printf("* * *\n");
for(j = 0; j < y - 6; j++)
printf(" ");
printf("* * * * * * *\n");
for(j = 0; j < y - 8; j++)
printf(" ");
printf("* * * * * * * * *\n");
for(j = 0; j < y- 1; j++)
printf(" ");
printf("* * \n");
if(kbhit())
{
input = getch();
if(input == 'a')
y--;
if(input == 'd')
y++;
if(input == 'w')
x--;
if(input == 's')
x++;
}
}
return 0;
}
是不是很帅
接下来我们就要射了(激光射线搞上)
激光飞机
空格表示射击
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
int i, j;
int x = 5;
int y = 10;
char input;
int isFire = 0;
while(1)
{
system("cls");
if(isFire == 0)
{
for(i = 0; i < x; i++)
printf("\n");
}
else
{
for(i = 0; i < x; i++)
{
for(j = 0; j < y; j++)
printf(" ");
printf("|\n");
}
isFire = 0;
}
for(j = 0; j < y; j++)
printf(" ");
printf("*\n");
for(j = 0; j < y - 2; j++)
printf(" ");
printf(" * *\n");
for(j = 0; j < y - 2; j++)
printf(" ");
printf("* * *\n");
for(j = 0; j < y - 6; j++)
printf(" ");
printf("* * * * * * *\n");
for(j = 0; j < y - 8; j++)
printf(" ");
printf("* * * * * * * * *\n");
for(j = 0; j < y- 1; j++)
printf(" ");
printf("* * \n");
if(kbhit())
{
input = getch();
if(input == 'a')
y--;
if(input == 'd')
y++;
if(input == 'w')
x--;
if(input == 's')
x++;
if(input == ' ')
isFire = 1;
}
}
return 0;
}
传送门:
发射激光的飞机
打靶练习
既然我们的飞机都升级成功了,弹药也配备充足的,接下来就是……
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
int i, j;
int x = 5;
int y = 10;
int isFire = 0;
char input;
int ny = 30;
int isKilled = 0;
while(1)
{
system("cls");
if(!isKilled)
{
for(j = 0; j < ny; j++)
printf(" ");
printf("+\n");
}
if(isFire == 0)
{
for(i = 0; i < x; i++)
printf("\n");
}
else
{
for(i = 0; i < x; i++)
{
for(j = 0; j < y; j++)
{
printf(" ");
}
printf("|\n");
}
if(y == ny)
isKilled = 1;
isFire = 0;
}
for(j = 0; j < y; j++)
printf(" ");
printf("*\n");
for(j = 0; j < y - 2; j++)
printf(" ");
printf(" * *\n");
for(j = 0; j < y - 2; j++)
printf(" ");
printf("* * *\n");
for(j = 0; j < y - 6; j++)
printf(" ");
printf("* * * * * * *\n");
for(j = 0; j < y - 8; j++)
printf(" ");
printf("* * * * * * * * *\n");
for(j = 0; j < y- 1; j++)
printf(" ");
printf("* * \n");
if(kbhit())
{
input = getch();
if(input == 'a')
y--;
if(input == 'd')
y++;
if(input == 'w')
x--;
if(input == 's')
x++;
if(input == ' ')
isFire = 1;
}
}
return 0;
}
激光飞机打靶游戏