最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)簡(jiǎ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;
}

效果圖如下:

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

相關(guān)文章

  • Qt實(shí)現(xiàn)部件透明及陰影效果的示例代碼

    Qt實(shí)現(xiàn)部件透明及陰影效果的示例代碼

    本文主要介紹了Qt實(shí)現(xiàn)部件透明及陰影效果的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++實(shí)現(xiàn)假裝藍(lán)屏整蠱小程序

    C++實(shí)現(xiàn)假裝藍(lán)屏整蠱小程序

    因?yàn)楣ぷ鞯男枰?,有時(shí)候我們離開時(shí)并不想讓別人看到我們電腦的內(nèi)容,所以本文為大家分享了一個(gè)基于C++實(shí)現(xiàn)的假裝藍(lán)屏的小程序,需要的可以參考下
    2023-06-06
  • C語言sizeof和strlen區(qū)別小結(jié)

    C語言sizeof和strlen區(qū)別小結(jié)

    C語言中的sizeof和strlen是兩個(gè)常用的操作符/函數(shù),但它們的功能和用途有很大的區(qū)別,本文就詳細(xì)的來介紹一下C語言sizeof和strlen區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • C++中函數(shù)重載與引用的操作方法

    C++中函數(shù)重載與引用的操作方法

    C++中函數(shù)重載允許同名函數(shù)根據(jù)參數(shù)列表的不同而執(zhí)行不同的功能,這依賴于名字修飾或名字改編(Name Mangling)機(jī)制,而引用則是為變量創(chuàng)建一個(gè)別名,不會(huì)開辟新的內(nèi)存空間,本文介紹了C++中函數(shù)重載與引用的操作,感興趣的朋友一起看看吧
    2024-10-10
  • Opencv 馬賽克和毛玻璃效果與圖片融合的實(shí)現(xiàn)

    Opencv 馬賽克和毛玻璃效果與圖片融合的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了通過OpenCV實(shí)現(xiàn)馬賽克和毛玻璃濾鏡效果與圖片的融合,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++深入探索類真正的形態(tài)之struct與class

    C++深入探索類真正的形態(tài)之struct與class

    前邊我們所定義的類,均是使用struct關(guān)鍵字來定義,但是C++中真正用于定義類的關(guān)鍵字為class,因?yàn)橐狢++兼容C,所以保留struct關(guān)鍵字,struct與class的用法完全相同
    2022-04-04
  • C語言實(shí)現(xiàn)的一個(gè)三子棋游戲詳解流程

    C語言實(shí)現(xiàn)的一個(gè)三子棋游戲詳解流程

    三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對(duì)角線連起來,相對(duì)兩邊依次擺上三個(gè)雙方棋子,只要將自己的三個(gè)棋子走成一條線,對(duì)方就算輸了
    2021-10-10
  • C語言通過案例講解并發(fā)編程模型

    C語言通過案例講解并發(fā)編程模型

    所謂并發(fā)編程是指在一臺(tái)處理器上“同時(shí)”處理多個(gè)任務(wù)。并發(fā)是在同一實(shí)體上的多個(gè)事件。多個(gè)事件在同一時(shí)間間隔發(fā)生,下面我們根據(jù)樣例來理解
    2022-04-04
  • C++實(shí)現(xiàn)LeetCode(115.不同的子序列)

    C++實(shí)現(xiàn)LeetCode(115.不同的子序列)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(115.不同的子序列),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 一文帶你學(xué)習(xí)C++中的派生機(jī)制

    一文帶你學(xué)習(xí)C++中的派生機(jī)制

    C++是一門面向?qū)ο蟮木幊陶Z言,其中的派生機(jī)制是其重要的面向?qū)ο筇匦灾?。本文我們就來詳?xì)地學(xué)習(xí)一下C++中的派生機(jī)制的相關(guān)知識(shí)吧
    2023-04-04

最新評(píng)論

德惠市| 新平| 吉林省| 房产| 吉隆县| 临清市| 安仁县| 保靖县| 五台县| 林州市| 连城县| 阜新| 鄂州市| 肇源县| 姚安县| 大渡口区| 离岛区| 涿州市| 涿州市| 紫云| 三明市| 青冈县| 南召县| 通州市| 汤原县| 赤城县| 洛隆县| 沂水县| 专栏| 龙州县| 文安县| 武邑县| 宜州市| 定兴县| 丰都县| 西乡县| 柞水县| 诏安县| 岚皋县| 高碑店市| 高淳县|