打飛機小遊戲C語言實現

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;
}

激光飛機打靶遊戲

如果喜歡我的文章,請記得一鍵三連哦,點贊關注收藏,你的每一個贊每一份關注每一次收藏都將是我前進路上的無限動力 !!!↖(▔▽▔)↗感謝支持,明天我們不見不散!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章