亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語(yǔ)言控制臺(tái)實(shí)現(xiàn)字符飛機(jī)大戰(zhàn)

 更新時(shí)間:2020年12月28日 14:23:31   作者:北顧+  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言控制臺(tái)實(shí)現(xiàn)字符飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

先看看效果吧

大一的時(shí)候做的,當(dāng)時(shí)沒(méi)有好的代碼習(xí)慣,所以代碼有點(diǎn)亂,代碼直接復(fù)制就能用了,功能可以自行拓展。

代碼:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main () {
 int life=6;//生命
 int i,j/*循環(huán)*/,plane_x,plane_y/*飛機(jī)所在坐標(biāo)*/,a;
 plane_x=8,plane_y=15;//初始化飛機(jī)
 char getc; //方向獲取
 /*構(gòu)造地圖*/
 int score=0; //得分 // 1 1 1 1 1 1 1
 char Map[17][17]= { //0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//1
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//2
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//3
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//4
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//5
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//6
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//7
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//8
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//9
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//10
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//11
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//12
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//13
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//14
 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//15
 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
 };//16
 for(;;) { //實(shí)現(xiàn)游戲循環(huán)
 int x,y;//隨機(jī)出現(xiàn)的敵機(jī)
 x=rand()%15+1;
 y=rand()%14+1;
 Map[y][x]=4;
 Map[plane_y][plane_x]=2;//初始化飛機(jī)
 for(i=0; i<17; i++) { //打印地圖
 for(j=0; j<17; j++) {
 if(Map[i][j]==1)//1為墻
 printf("▓");
 else if(Map[i][j]==0)
 printf(" ");
 else if(Map[i][j]==2)//2為飛機(jī) 初始map[15][7] (16,8)
 printf("Ж");
 else if(Map[i][j]==3)//3 子彈
 printf("!!");
 else if(Map[i][j]==4)//4 敵機(jī)
 printf("Ψ");
 }
 printf("\n");
 } //打印地圖結(jié)束
 printf("\n Ж生命:");
 
 for(i=0; i<life; i++)
 printf("■");
 printf("\n");
 printf(" 得分:%d\n\n 控制:\n w:上\ts:下\n a:左\ts:右\n e:發(fā)射子彈",score);
 for(i=0; i<17; i++) { //清除子彈
 for(j=0; j<17; j++) {
 if(Map[i][j]==3)
 Map[i][j]=0;
 }
 }//清除子彈結(jié)束
 for(i=0; i<17; i++) { //清除飛機(jī)軌跡
 for(j=0; j<17; j++) {
 if(Map[i][j]==2)
 Map[i][j]=0;
 }
 }//清除飛機(jī)軌跡 結(jié)束
 if(plane_x>0&&plane_x<16&&plane_y>0&&plane_y<16) {
 getc=getch();
 if (getc=='d') { //wasd
 ++plane_x;
 if(plane_x<=0)
 plane_x=1;
 else if(plane_x>=16)
 plane_x=15;
 else if(Map[plane_y][plane_x]==4) { //碰撞敵機(jī),退出
 life--;
 if(life==0)
 break;
 }
 }
 if (getc=='a') {
 --plane_x;
 if(plane_x<=0)
 plane_x=1;
 else if(plane_x>=16)
 plane_x=15;
 else if(Map[plane_y][plane_x]==4) { //碰撞敵機(jī),當(dāng)life==0退出
 life--;
 if(life==0)
 break;
 }
 }
 if (getc=='w') {
 --plane_y;
 if(plane_y<=0)
 plane_y=1;
 else if(plane_y>=16)
 plane_y=15;
 else if(Map[plane_y][plane_x]==4) { //碰撞敵機(jī),退出
 life--;
 if(life==0)
 break;
 }
 }
 if (getc=='s') {
 ++plane_y;
 if(plane_y<=0)
 plane_y=1;
 else if(plane_y>=16)
 plane_y=15;
 else if(Map[plane_y][plane_x]==4) { //碰撞敵機(jī),退出
 life--;
 if(life==0)
 break;
 }
 }
 if (getc=='e') {
 
 for(a=plane_y-1; a>=1; a--) {
 if(Map[a][plane_x]==4) { //
 score++;
 Map[a][plane_x]=0;//清除敵機(jī)
 break;
 }
 Map[a][plane_x]=3;
 }
 }
 }
 system("cls");
 }
 system("cls");
 printf("總分:%d",score);
 getch();
 return 0;
}

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

相關(guān)文章

  • Qt中JSON使用的詳細(xì)步驟

    Qt中JSON使用的詳細(xì)步驟

    本文主要介紹了Qt中JSON使用的詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • linux根據(jù)pid獲取進(jìn)程名和獲取進(jìn)程pid(c語(yǔ)言獲取pid)

    linux根據(jù)pid獲取進(jìn)程名和獲取進(jìn)程pid(c語(yǔ)言獲取pid)

    status文件,第一行的Name即為進(jìn)程名,C程序?qū)崿F(xiàn)根據(jù)PID獲取進(jìn)程名和根據(jù)進(jìn)程名獲取PID,大家參考使用吧
    2013-12-12
  • MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù)的方法

    MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù)的方法

    這篇文章主要為大家詳細(xì)介紹了MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C++基礎(chǔ)學(xué)生管理系統(tǒng)

    C++基礎(chǔ)學(xué)生管理系統(tǒng)

    這篇文章主要介紹了C++基礎(chǔ)學(xué)生管理系統(tǒng)的相關(guān)資料,包括了文件處理代碼,鏈表處理代碼,以及自定義代碼,主函數(shù)自定義,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • C++枚舉類型用法總結(jié)(枚舉字符常量代替常量)

    C++枚舉類型用法總結(jié)(枚舉字符常量代替常量)

    這篇文章主要介紹了C++枚舉類型用法總結(jié)(枚舉字符常量代替常量),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C/C++利用原生套接字抓取FTP數(shù)據(jù)包

    C/C++利用原生套接字抓取FTP數(shù)據(jù)包

    這篇文章主要為大家詳細(xì)介紹了如何基于原始套接字的網(wǎng)絡(luò)數(shù)據(jù)包捕獲與分析工具,通過(guò)實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)流量,實(shí)現(xiàn)抓取流量包內(nèi)的FTP通信數(shù)據(jù),需要的小伙伴可以參考下
    2023-12-12
  • C++實(shí)現(xiàn)LeetCode(105.由先序和中序遍歷建立二叉樹)

    C++實(shí)現(xiàn)LeetCode(105.由先序和中序遍歷建立二叉樹)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(105.由先序和中序遍歷建立二叉樹),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語(yǔ)言入門篇--變量[定義,初始化賦值,外部聲明]

    C語(yǔ)言入門篇--變量[定義,初始化賦值,外部聲明]

    本篇文章是c語(yǔ)言基礎(chǔ)篇,本文對(duì)初識(shí)c語(yǔ)言的變量、變量的定義、初始化與賦值、變量的分類、含義、外部聲明做了簡(jiǎn)要的描述,幫助大家快速入門c語(yǔ)言的世界,更好的理解c語(yǔ)言
    2021-08-08
  • C語(yǔ)言求解定積分的方法

    C語(yǔ)言求解定積分的方法

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言求解定積分的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 基于對(duì)話框程序中讓對(duì)話框捕獲WM_KEYDOWN消息的實(shí)現(xiàn)方法

    基于對(duì)話框程序中讓對(duì)話框捕獲WM_KEYDOWN消息的實(shí)現(xiàn)方法

    下面我們將通過(guò)程序給大家演示基于對(duì)話框的應(yīng)用程序?qū)M_KEYDOWN消息的捕獲。需要的朋友可以參考下
    2013-05-05

最新評(píng)論