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
游戲五計算
主站蜘蛛池模板: 72种姿势欧美久久久大黄蕉| 亚洲国产日韩视频观看| 国产女人在线| 亚洲精品自拍区在线观看| 欧美精品亚洲日韩a| 成人福利免费在线观看| 国产办公室秘书无码精品| 国产女人18水真多毛片18精品 | 九色视频最新网址| 黄色成年视频| 国产精品男人的天堂| 青青草国产精品久久久久| 国产国语一级毛片| 国产高清无码第一十页在线观看| 97视频精品全国在线观看| 九九热这里只有国产精品| 无码视频国产精品一区二区| 无码免费视频| 国产91线观看| 国产精品爽爽va在线无码观看| 亚洲成人网在线播放| 亚洲动漫h| 久热这里只有精品6| 四虎在线观看视频高清无码| 亚洲综合极品香蕉久久网| 亚洲精品自拍区在线观看| 国产成+人+综合+亚洲欧美| 狠狠躁天天躁夜夜躁婷婷| 国产浮力第一页永久地址| 91原创视频在线| 国产SUV精品一区二区| 欧美精品三级在线| 丁香婷婷在线视频| 91亚洲视频下载| 国产欧美日韩免费| 精品丝袜美腿国产一区| 欧美成人国产| 国产成人无码AV在线播放动漫| 日韩国产欧美精品在线| 午夜国产在线观看| 亚洲一级毛片免费观看| 亚洲国产欧美国产综合久久 | 欧美日本在线观看| 亚洲欧美自拍中文| 国产亚洲高清视频| 老司机久久99久久精品播放| vvvv98国产成人综合青青| 成人国产一区二区三区| 亚洲一区二区黄色| 亚洲免费毛片| 欧美人与性动交a欧美精品| 亚洲第一极品精品无码| 欧美在线三级| 国产91精品调教在线播放| 无码专区国产精品一区| 亚洲性日韩精品一区二区| 欧美日韩精品一区二区视频| 国产精品漂亮美女在线观看| 亚洲国产日韩在线观看| 久久综合亚洲鲁鲁九月天| 亚洲精品第一在线观看视频| 99在线观看视频免费| 国产精品一区不卡| 在线a视频免费观看| 99青青青精品视频在线| 精品国产免费观看一区| 久久99精品国产麻豆宅宅| 国产精品视频999| 久久久久久久久18禁秘| 好紧太爽了视频免费无码| 超清无码一区二区三区| 在线五月婷婷| 亚洲精品片911| 亚洲经典在线中文字幕| 真实国产精品vr专区| 成人国产免费| 欧美国产日韩一区二区三区精品影视| 亚洲毛片网站| 亚洲精品大秀视频| 国产高清毛片| 午夜视频在线观看区二区| 在线免费观看AV|