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
游戲五計算
主站蜘蛛池模板: 91精品国产自产在线观看| 欧洲高清无码在线| 亚洲熟女偷拍| 亚洲天堂视频在线播放| 国产精品无码久久久久久| 午夜毛片免费看| 最新亚洲人成无码网站欣赏网 | 国产又黄又硬又粗| 国产精品私拍在线爆乳| 亚洲欧洲日本在线| 沈阳少妇高潮在线| 精品国产香蕉在线播出| 久久精品视频一| 久草性视频| 日本道综合一本久久久88| 茄子视频毛片免费观看| 91视频国产高清| 欧美中文字幕在线二区| 少妇被粗大的猛烈进出免费视频| 九九热这里只有国产精品| 国产一区二区三区夜色| 女人毛片a级大学毛片免费| 中文天堂在线视频| 国产黄网站在线观看| 午夜一区二区三区| 中文字幕乱码二三区免费| 色AV色 综合网站| 免费看的一级毛片| 亚洲人成在线精品| 国产极品美女在线观看| 狠狠色丁香婷婷综合| 女人18毛片久久| 99这里精品| 亚洲精品在线影院| 国产微拍精品| 亚洲Va中文字幕久久一区 | 亚洲第一成人在线| 国产美女人喷水在线观看| 国产va在线| 尤物视频一区| 亚洲色图欧美一区| 亚洲无码高清一区| 国产精品嫩草影院av| 一级看片免费视频| 999精品视频在线| 五月六月伊人狠狠丁香网| 久久婷婷人人澡人人爱91| 尤物成AV人片在线观看| 97国产在线视频| 尤物国产在线| 国产精品久线在线观看| 亚洲无限乱码| 亚洲三级色| 丁香婷婷激情网| 激情乱人伦| 中字无码精油按摩中出视频| 在线播放91| 亚洲精品午夜无码电影网| 日本亚洲成高清一区二区三区| 亚洲视频色图| 熟女日韩精品2区| 国产激情无码一区二区APP| 国产视频欧美| 婷婷五月在线视频| 亚洲无线视频| 中文字幕不卡免费高清视频| 日韩欧美一区在线观看| 国产簧片免费在线播放| 激情六月丁香婷婷四房播| 亚洲欧美成人影院| 日韩在线第三页| 情侣午夜国产在线一区无码| 国产91小视频在线观看| 亚洲最新地址| 亚洲二三区| 久久黄色毛片| 浮力影院国产第一页| 人妻无码一区二区视频| 一级毛片高清| 又猛又黄又爽无遮挡的视频网站 | 伊人久久精品无码麻豆精品| 国产色爱av资源综合区|