亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C語言的坦克大戰(zhàn)

        2017-05-08 00:21:22趙博呂倩倩
        山東工業(yè)技術(shù) 2017年8期
        關(guān)鍵詞:游戲

        趙博+呂倩倩

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

        關(guān)鍵詞:C語言;游戲;坦克大戰(zhàn)

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

        1 技術(shù)簡介

        目前主流的語言是Java、C++等等,這兩門語言都是高級語言的一種。是可以撰寫跨平臺應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計語言。Java語言具有很長豐富的語法特征,如模塊和類模塊,是一種解釋型語言,他不會生成機(jī)器碼,所以移植性特別好。但高級語言存在體積龐大的特點(diǎn),不適合對空間嚴(yán)格要求的場合。

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

        2 需求分析

        需求分析即是根據(jù)用戶的要求來確定軟件的。分配軟件元素,是軟件定義時期的最后一個階段,它的基本任務(wù)是確定系統(tǒng)必須做什么,是對要做的系統(tǒng)確定一個完整的、具體的、清晰的、準(zhǔn)確的要求??梢苑譃樾枨蟮奶岢觯枨蟮拿枋?,需求的評審等階段。需求分析也是設(shè)計數(shù)據(jù)結(jié)構(gòu)的起點(diǎn),需求分析的結(jié)果將直接影響到程序功能的設(shè)計。

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

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

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

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

        3 概要設(shè)計

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

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

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

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

        4 詳細(xì)設(shè)計

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

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

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

        5 結(jié)語

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

        參考文獻(xiàn):

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

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

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

        猜你喜歡
        游戲
        做游戲
        夜間游戲
        游戲
        送信游戲
        數(shù)獨(dú)游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        第八章直接逃出游戲
        第八章 直接逃出游戲
        游戲五計算
        亚洲日韩国产一区二区三区在线| av天堂一区二区三区精品| 日韩黄色大片免费网站| 亚洲va视频一区二区三区| 热re99久久精品国99热| 无遮挡又爽又刺激的视频| 精品亚洲国产探花在线播放| 青青草久热手机在线视频观看| 亚洲天堂av在线免费观看| 四虎成人精品在永久免费| 男人激烈吮乳吃奶视频免费 | 国产国拍精品av在线观看按摩| 欧美国产亚洲精品成人a v| 日本成人免费一区二区三区| 毛片在线播放亚洲免费中文网| 精品卡一卡二卡3卡高清乱码| 精品深夜av无码一区二区老年| 欧美日韩国产亚洲一区二区三区| 婷婷开心五月综合基地| 中文字幕精品一区二区的区别| 国产综合精品一区二区三区| 日韩亚洲av无码一区二区不卡| 精品久久杨幂国产杨幂| 久久亚洲综合亚洲综合| 亚洲视频在线一区二区| 极品成人影院| 91短视频在线观看免费| 日韩中文字幕一区二十| 亚洲中文字幕人妻久久| 国产女人水真多18毛片18精品| 国产午夜亚洲精品不卡福利| 日本久久精品在线播放| 漂亮人妻被强了中文字幕| 宅男666在线永久免费观看| 精品国产精品久久一区免费式| 亚洲国产精品成人久久av| 日本免费精品一区二区| 国产精品毛片无遮挡| 无码一区二区三区老色鬼| 亚洲国产一区二区三区,| 亚洲黄色av一区二区三区|