欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)簡單的飛機(jī)大戰(zhàn)游戲

 更新時(shí)間:2022年05月16日 11:28:31   作者:輝小歌  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單的飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn)游戲的具體代碼,供大家參考,具體內(nèi)容如下

一、項(xiàng)目描述和最終的成果展示

項(xiàng)目描述: 顯示出一個(gè)飛機(jī),并可以控制移動(dòng),發(fā)出激光,打靶練習(xí)。

效果展示:

二、輸出一個(gè)飛機(jī)模型

先輸出一個(gè)飛機(jī)模型。后面再進(jìn)一步完成控制飛機(jī)的功能。

代碼如下:

//輸出飛機(jī)圖案
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(void)
{
?? ??? ?int i,j;
?? ??? ?int x=10;
?? ??? ?int y=10;
?? ??? ?char input;

?? ??? ?//輸出飛機(jī)上面的空行
?? ??? ?for(i=0;i<x;i++)
?? ??? ?{
?? ??? ??? ?printf("\n");
?? ??? ?}

?? ??? ?//輸出飛機(jī)左邊的空格
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" ?*\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf("*****\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" * * \n");?? ?
?? ?return 0;
}

效果圖如下:

三、實(shí)現(xiàn)控制飛機(jī)移動(dòng)的功能

用scanf()函數(shù)來實(shí)現(xiàn)控制飛機(jī)移動(dòng)的功能

代碼如下:

#include<stdio.h>
#include<stdlib.h>
//用scanf來完成飛機(jī)的移動(dòng)
int main(void)
{
?? ?int i,j;
?? ?int x=5;
?? ?int y=10;
?? ?char input;

?? ?while(1)
?? ?{
?? ??? ?system("cls");
?? ??? ?//輸出飛機(jī)上面的空行
?? ??? ?for(i=0;i<x;i++)
?? ??? ?{
?? ??? ??? ?printf("\n");
?? ??? ?}

?? ??? ?//輸出飛機(jī)左邊的空格
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" ?*\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf("*****\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" * * \n");
?? ??? ?scanf("%c",&input);
?? ??? ?if(input == 'a' || input == 'A')
?? ??? ?{
?? ??? ??? ?y--;
?? ??? ?}
?? ??? ?if(input == 'd' || input == 'D')
?? ??? ?{
?? ??? ??? ?y++;
?? ??? ?}
?? ??? ?if(input == 'w' || input == 'W')
?? ??? ?{
?? ??? ??? ?x--;
?? ??? ?}
?? ??? ?if(input == 's' || input == 'S')
?? ??? ?{
?? ??? ??? ?x++;
?? ??? ?}
?? ?}
?? ?return 0;
}

效果圖如下:

你會(huì)發(fā)現(xiàn)一個(gè)弊端 就是它會(huì)顯示你輸入了啥,這樣是特別的不友好的。
所以我們要用 getch() 這個(gè)函數(shù), 它是不會(huì)顯示回顯的。即,不會(huì)出現(xiàn)我們輸入的是啥。
這樣就很好了,達(dá)到了我們的目的。

用getch()函數(shù)來實(shí)現(xiàn)控制飛機(jī)移動(dòng)的功能

代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//用scanf來完成飛機(jī)的移動(dòng)
int main(void)
{
?? ?int i,j;
?? ?int x=5;
?? ?int y=10;
?? ?char input;

?? ?while(1)
?? ?{
?? ??? ?system("cls");
?? ??? ?//輸出飛機(jī)上面的空行
?? ??? ?for(i=0;i<x;i++)
?? ??? ?{
?? ??? ??? ?printf("\n");
?? ??? ?}

?? ??? ?//輸出飛機(jī)左邊的空格
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" ?*\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf("*****\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" * * \n");
?? ??? ?input=getch();
?? ??? ?if(input == 'a' || input == 'A')
?? ??? ?{
?? ??? ??? ?y--;
?? ??? ?}
?? ??? ?if(input == 'd' || input == 'D')
?? ??? ?{
?? ??? ??? ?y++;
?? ??? ?}
?? ??? ?if(input == 'w' || input == 'W')
?? ??? ?{
?? ??? ??? ?x--;
?? ??? ?}
?? ??? ?if(input == 's' || input == 'S')
?? ??? ?{
?? ??? ??? ?x++;
?? ??? ?}
?? ?}
?? ?return 0;
}

效果圖如下:

四、添加發(fā)射激光功能

代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//用getch來完成飛機(jī)的移動(dòng)
int main(void)
{
?? ?int i,j;
?? ?int x=10;
?? ?int y=10;
?? ?char input;
?? ?int isFire=0;//用來判斷是否發(fā)射

?? ?while(1)
?? ?{
?? ??? ?if(isFire == 0)
?? ??? ?{
?? ??? ??? ?//輸出飛機(jī)上面的空行
?? ??? ??? ?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;
?? ??? ?}


?? ??? ?//輸出飛機(jī)左邊的空格
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" ?*\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf("*****\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" * * \n");
?? ??? ?input=getch();
?? ??? ?fflush(stdin);
?? ??? ?system("cls");
?? ??? ?if(input == 'a' || input == 'A')
?? ??? ?{
?? ??? ??? ?y--;
?? ??? ?}
?? ??? ?if(input == 'd' || input == 'D')
?? ??? ?{
?? ??? ??? ?y++;
?? ??? ?}
?? ??? ?if(input == 'w' || input == 'W')
?? ??? ?{
?? ??? ??? ?x--;
?? ??? ?}
?? ??? ?if(input == 's' || input == 'S')
?? ??? ?{
?? ??? ??? ?x++;
?? ??? ?}
?? ??? ?if( input == ' ')
?? ??? ??? ?isFire = 1;
?? ?}
?? ?return 0;
}

效果圖如下:

五、添加靶子和分?jǐn)?shù)統(tǒng)計(jì)功能

代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<time.h>
#include<conio.h>
//用getch來完成飛機(jī)的移動(dòng)
int main(void)
{
?? ?int i,j;
?? ?int x=10;
?? ?int y=10;
?? ?char input;
?? ?int isFire=0;//用來判斷是否發(fā)射
?? ?int score=10;

?? ?int ny = 30; ? ? ? ?// ?靶子的位置
?? ?int isKilled = 0; //判斷是否擊中
?? ?int yanshi=0; ? ?// ?延時(shí)靶子的時(shí)間
?? ?system("color 09");

?? ?while(1)
?? ?{
?? ??? ?if(yanshi<66)//延時(shí) 讓靶子顯示
?? ??? ?{
?? ??? ??? ?yanshi++;
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?srand(time(0));
?? ??? ??? ?ny=rand()%80+5;
?? ??? ??? ?yanshi=0;
?? ??? ?}
?? ??? ?printf("分?jǐn)?shù):%d\n",score);
?? ??? ?if(!isKilled)//沒有擊中靶子,繼續(xù)顯示靶子
?? ??? ?{
?? ??? ??? ?for(j=0;j<ny;j++)
?? ??? ??? ?{
?? ??? ??? ??? ?printf(" ");
?? ??? ??? ?}
?? ??? ??? ?printf("▼\n");
?? ??? ?}
?? ??? ?else//說明擊中靶子,刷新靶子
?? ??? ?{
?? ??? ??? ?yanshi=66;
?? ??? ??? ?isKilled=0;
?? ??? ?}

?? ??? ?if(isFire == 0)
?? ??? ?{
?? ??? ??? ?//輸出飛機(jī)上面的空行
?? ??? ??? ?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;
?? ??? ?}


?? ??? ?//輸出飛機(jī)左邊的空格
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" ?*\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf("*****\n");
?? ??? ?for(j=0;j<y;j++)
?? ??? ?{
?? ??? ??? ?printf(" ");
?? ??? ?}
?? ??? ?printf(" * * \n");
?? ??? ?input=getch();
?? ??? ?fflush(stdin);
?? ??? ?system("cls");
?? ??? ?if(input == 'a' || input == 'A')
?? ??? ?{
?? ??? ??? ?y--;
?? ??? ?}
?? ??? ?if(input == 'd' || input == 'D')
?? ??? ?{
?? ??? ??? ?y++;
?? ??? ?}
?? ??? ?if(input == 'w' || input == 'W')
?? ??? ?{
?? ??? ??? ?x--;
?? ??? ?}
?? ??? ?if(input == 's' || input == 'S')
?? ??? ?{
?? ??? ??? ?x++;
?? ??? ?}
?? ??? ?if( input == ' ')
?? ??? ??? ?isFire = 1;
?? ??? ?if( (ny==y+2) && (input==' ') )//判斷是否擊中靶子
?? ??? ?{
?? ??? ??? ?isKilled=1;
?? ??? ??? ?score=score+5;//分?jǐn)?shù)增加
?? ??? ?}
?? ?}
?? ?return 0;
}

效果圖如下:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論