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;
}
激光飛機打靶遊戲