999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C語言的坦克大戰

2017-05-08 00:21:22趙博呂倩倩
山東工業技術 2017年8期
關鍵詞:游戲

趙博+呂倩倩

摘 要:游戲是人類日常生活不可或缺的元素,游戲的方式隨著時代的變遷也在改變。在信息時代,以計算機為載體的游戲成為主流,特別是當今生活節奏加快的今天,生活和工作壓力常常使人焦慮不安,而游戲能使人精神放松,舒緩壓力。

關鍵詞:C語言;游戲;坦克大戰

DOI:10.16640/j.cnki.37-1222/t.2017.08.114

1 技術簡介

目前主流的語言是Java、C++等等,這兩門語言都是高級語言的一種。是可以撰寫跨平臺應用程序的面向對象的程序設計語言。Java語言具有很長豐富的語法特征,如模塊和類模塊,是一種解釋型語言,他不會生成機器碼,所以移植性特別好。但高級語言存在體積龐大的特點,不適合對空間嚴格要求的場合。

C語言是一種歷史悠久的計算機語言,同時使用范圍廣,它的出現就是解決了匯編語言晦澀難記的弊端,它既具有高級語言的特征又具有基層語言的功能,同時跨平臺性也絲毫不比大型語言差。C語言的指針更可以靈活操作內存空間,而高級語言則將其封裝起來,使用起來限制太多,同時這也是C語言的缺點所在

2 需求分析

需求分析即是根據用戶的要求來確定軟件的。分配軟件元素,是軟件定義時期的最后一個階段,它的基本任務是確定系統必須做什么,是對要做的系統確定一個完整的、具體的、清晰的、準確的要求。可以分為需求的提出,需求的描述,需求的評審等階段。需求分析也是設計數據結構的起點,需求分析的結果將直接影響到程序功能的設計。

需求分析的任務是通過詳細調查現實世界要處理的對象(坦克、子彈、墻等),充分了解游戲的運行情況,開發游戲的各種需求,然后在此基礎上確定游戲的功能。調查的重點是“數據”和“處理”,通過調查、收集與分析,獲得開發游戲的如下要求:信息要求、處理要求、安全性與健壯性要求。

(1)游戲整體分析.本游戲主要包括己方坦克和敵方坦克,還有我方基地,磚墻,鐵墻,綠草,開始畫面,游戲勝利畫面,游戲結束畫面。我方坦克和對方坦克可以向上、向下、向左、向右移動,游戲的玩家通過鍵盤來控制坦克的移動和發射子彈,對方坦克通過A*算法移動和發射子彈。我放坦克子彈能消滅敵方坦克。敵方坦克子彈擊中我方坦克時生命值會減少。當己方坦克血量為0或者基地被摧毀時游戲結束,出現游戲結束畫面。

(2)游戲建模。游戲中敵我雙方坦克均可完成射擊、移動的功能,但己方坦克的運行是通過鍵盤響應事件控制,而敵方坦克是根據A*算法來移動的。同時,出現在屏幕上的敵方可能會有較多的數量,這需要為每個敵方開辟一個線程以便能讓其獨立運行。為了避免使用多線程技術,在這里引入虛擬線程,不使用多線程是為了兼容一些較落后的計算機CPU處理能力不足的問題。

(3)游戲整體建模。游戲首先出現開始的界面,通過WS切換選項,Y鍵確定選擇坦克數量也在不斷增加,我方坦克在生命值用為0時游戲結束,但只有游戲進行到最后一關并將最后一關的坦克全數殲滅我方才算取得勝利。

3 概要設計

本游戲中設計的主要研究的內容:敵我雙方的坦克、子彈以及地圖元素均以字符方式通過WINDOWS API函數打印在控制臺上,并且添加游戲包含河、墻等地圖元素。使用模擬多線程來控制坦克的移動。敵人中包含特殊坦克有不同的移動速度、攻擊力、生命值,我方坦克是有生命值限制的。

(1)游戲框架設計。本游戲主要有三個模塊構成,分別是數據摸塊(Data),視圖控制模塊(Draw)以及邏輯控制模塊(Engine)。數據模塊主要用于保存坦克信息的結構體,子彈信息的結構體以及一些地圖信息以及一些常用的宏。DRAW模塊是將本游戲一切所有的元素顯示出來,因為本游戲主要是控制臺開發的,所以DRAW模塊主要用于將邏輯模塊所處理后的信息打印出來。各個模塊分工合作互不影響,通過模塊分布可以快速定位BUG的根源,十分利于調試。

(2)數據結構設計。游戲中各個元素定義成結構體,并且在一定的條件下某些元素消失或者出現,因此為了操作的方便,將這些元素均存放在向量中,采用向量而不采用鏈表是因為向量操作容易,且其占用內存的空間是可變的,且事先需要為其分配一定的存儲空間,因此向量還節省了空間。

(3)算法設計。本游戲中我方坦克、我方子彈、敵方坦克、敵方子彈都將其模擬成不同線程,即敵我雙方坦克,子彈均是以線程的形式出現在游戲中的,此外游戲中還設置了磚墻,草皮,鋼鐵等元素,這些物體都是以字符形式顯示,并且存放在在一個二維數組中。游戲過程中,坦克和子彈有時會碰撞到這些元素,當坦克不能通過磚墻和鐵墻,而子彈可以擊碎磚墻無法擊碎鋼鐵墻,關于碰撞都是通過坐標是否重合實現的。

4 詳細設計

(1)玩家坦克的功能屬性.首先己方坦克在進入游戲后的方向也就是炮頭是向上的,位于地圖的最下方,根據玩家鍵盤輸入移動,此時只能方向向下,不能向下移動但可以向其他三個方向移動。

(2)敵人坦克的功能屬性。敵方坦克移動時是根據算法獲得的,每次將該敵方坦克的坐標放入算法結構,會得到一個新的坐標,通過坐標與原坐標的比較,判斷原坐標的方向,得到的坐標此時坦克就是向下,然后調用自身移動函數傳入向下的參數進行移動。

(3)敵方的坦克控制及智能移動。敵方坦克的移動將采用A*算法獲得敵軍到己軍的最短路徑,然后把路徑通過計算轉換為0、1、2、3方向鍵保存到數組里,然后敵軍通過讀取數組中的命令來實現智能移動。敵軍坦克的子彈發射是通過主程序循環100次發射一次。這樣就可以實現敵軍坦克的智能移動和發射了。

5 結語

本程序的開發環境是以VS2013為平臺開發,采用尋路算法控制敵方坦克移動,使其可玩性和復雜性有了極大提高。當然BUG是程序開發的必需品,在不斷的調試過程中,更加認識到了C語言的特性。

參考文獻:

[1]陳朔鷹,陳英.C語言程序設計習題集(第二版)[J].人民郵電出版社,2003(02).

[2]張芳妮,呂波譯,[美]Paul S. R. Chishohm等著.C語言編程常見問題解答[J].清華大學出版社,1996(12).

[3]陳朔鷹,陳英.C語言趣味程序百例精解[J].北京理工大學出版社,1996.

猜你喜歡
游戲
做游戲
夜間游戲
游戲
送信游戲
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
第八章 直接逃出游戲
小學科學(2015年6期)2015-07-01 14:30:14
游戲五計算
主站蜘蛛池模板: 精品久久高清| 色老二精品视频在线观看| 波多野结衣无码AV在线| 日本黄色a视频| 久久亚洲天堂| 91成人免费观看| 国产小视频在线高清播放 | 欧美专区日韩专区| 国产正在播放| 久久久久国产一区二区| 国产一区二区人大臿蕉香蕉| 久久精品一品道久久精品| 日韩不卡免费视频| 欧美不卡二区| 国产精品入口麻豆| 日韩精品毛片人妻AV不卡| 亚洲一区二区视频在线观看| 五月天天天色| 91精品国产一区自在线拍| 亚洲精品777| a毛片在线免费观看| 思思热在线视频精品| 国产情精品嫩草影院88av| 欧美午夜在线观看| 精品国产一区二区三区在线观看| 亚洲中文字幕久久无码精品A| 久久亚洲国产一区二区| 手机在线国产精品| 亚洲色图欧美视频| 国产精品亚洲va在线观看| 毛片免费在线视频| 重口调教一区二区视频| 免费无遮挡AV| 人妻无码一区二区视频| 97视频免费看| 国产网站免费观看| 欧美精品黑人粗大| 亚洲无码高清免费视频亚洲 | 国产精欧美一区二区三区| 色综合色国产热无码一| 亚洲精品国产乱码不卡| 精品视频福利| 国产精品第一区在线观看| 国产一区二区丝袜高跟鞋| 亚洲 欧美 偷自乱 图片| 五月天久久综合| 青青青亚洲精品国产| 99er这里只有精品| 日韩最新中文字幕| 四虎精品国产永久在线观看| 国产激情无码一区二区APP| 欧美在线一二区| 亚洲欧美精品日韩欧美| 久久久久久久久18禁秘| 婷婷综合色| 91视频青青草| 亚洲第一区精品日韩在线播放| 视频一本大道香蕉久在线播放 | 91丝袜乱伦| 国产三级视频网站| 国产成人啪视频一区二区三区| 国产一区二区三区在线精品专区| 欧美精品H在线播放| 欧美精品xx| 欧美激情成人网| 中美日韩在线网免费毛片视频| 亚洲91精品视频| 欧美日韩北条麻妃一区二区| 国产精品综合久久久| 99免费在线观看视频| 亚洲无码在线午夜电影| 91免费国产在线观看尤物| 欧美综合激情| 亚洲男人的天堂在线观看| 日本免费一区视频| 亚洲最大福利视频网| 五月综合色婷婷| 亚洲永久色| 午夜a级毛片| 中文字幕久久亚洲一区 | 91成人试看福利体验区| 亚洲高清无码久久久|