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

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

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

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

一、項目描述和最終的成果展示

項目描述: 顯示出一個飛機,并可以控制移動,發(fā)出激光,打靶練習(xí)。

效果展示:

二、輸出一個飛機模型

先輸出一個飛機模型。后面再進一步完成控制飛機的功能。

代碼如下:

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

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

?? ??? ?//輸出飛機左邊的空格
?? ??? ?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;
}

效果圖如下:

三、實現(xiàn)控制飛機移動的功能

用scanf()函數(shù)來實現(xiàn)控制飛機移動的功能

代碼如下:

#include<stdio.h>
#include<stdlib.h>
//用scanf來完成飛機的移動
int main(void)
{
?? ?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;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;
}

效果圖如下:

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

用getch()函數(shù)來實現(xiàn)控制飛機移動的功能

代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//用scanf來完成飛機的移動
int main(void)
{
?? ?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;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來完成飛機的移動
int main(void)
{
?? ?int i,j;
?? ?int x=10;
?? ?int y=10;
?? ?char input;
?? ?int isFire=0;//用來判斷是否發(fā)射

?? ?while(1)
?? ?{
?? ??? ?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;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)計功能

代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<time.h>
#include<conio.h>
//用getch來完成飛機的移動
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; ? ?// ?延時靶子的時間
?? ?system("color 09");

?? ?while(1)
?? ?{
?? ??? ?if(yanshi<66)//延時 讓靶子顯示
?? ??? ?{
?? ??? ??? ?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)
?? ??? ?{
?? ??? ??? ?//輸出飛機上面的空行
?? ??? ??? ?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;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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++實現(xiàn)LeetCode(647.回文子字符串)

    C++實現(xiàn)LeetCode(647.回文子字符串)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(647.回文子字符串),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 利用C++實現(xiàn)最長公共子序列與最長公共子串

    利用C++實現(xiàn)最長公共子序列與最長公共子串

    這篇文章主要給大家介紹了如何利用C++實現(xiàn)最長公共子序列與最長公共子串,文章一開始就給大家簡單的介紹了什么是子序列,子串應(yīng)該比較好理解就不用多介紹了,人后通過算法及示例代碼詳細(xì)介紹了C++實現(xiàn)的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • 詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法

    詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法

    這篇文章主要介紹了詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08
  • C語言中#pragma?once的作用

    C語言中#pragma?once的作用

    這篇文章主要介紹了C語言中#pragma?once的作用,pragma once 一般由編譯器提供保證,更多相關(guān)內(nèi)容在下面文章詳細(xì)展開需要的小伙伴可以參考一下
    2022-05-05
  • 自己模擬寫C++中的String類型實例講解

    自己模擬寫C++中的String類型實例講解

    下面小編就為大家?guī)硪黄约耗M寫C++中的String類型實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 在輸入輸出字符串時scanf(),printf()和gets(),puts()的區(qū)別淺談

    在輸入輸出字符串時scanf(),printf()和gets(),puts()的區(qū)別淺談

    在輸入輸出字符串時scanf(),printf()和gets(),puts()的區(qū)別淺談,需要的朋友可以參考一下
    2013-02-02
  • C++超集C++/CLI模塊的基本類型

    C++超集C++/CLI模塊的基本類型

    這篇文章介紹了C++超集C++/CLI模塊的基本類型,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C語言實現(xiàn)簡單計算器

    C語言實現(xiàn)簡單計算器

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C語言指針的長度和類型深入分析

    C語言指針的長度和類型深入分析

    這篇文章主要介紹了C語言指針的長度和類型,針對常見的各個類型進行了相對詳細(xì)的分析,需要的朋友可以參考下
    2014-09-09
  • 三種獲取網(wǎng)頁源碼的方法(使用MFC/Socket實現(xiàn))

    三種獲取網(wǎng)頁源碼的方法(使用MFC/Socket實現(xiàn))

    Windows下比較簡單的獲取網(wǎng)頁源碼的方法:使用MFC、使用MFC、Socket實現(xiàn)
    2013-12-12

最新評論