網(wǎng)絡棋牌游戲設(shè)計方法

網(wǎng)絡棋牌游戲設(shè)計方法

ID:18268881

大?。?8.00 KB

頁數(shù):13頁

時間:2018-09-16

網(wǎng)絡棋牌游戲設(shè)計方法_第1頁
網(wǎng)絡棋牌游戲設(shè)計方法_第2頁
網(wǎng)絡棋牌游戲設(shè)計方法_第3頁
網(wǎng)絡棋牌游戲設(shè)計方法_第4頁
網(wǎng)絡棋牌游戲設(shè)計方法_第5頁
資源描述:

《網(wǎng)絡棋牌游戲設(shè)計方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、網(wǎng)絡棋牌游戲設(shè)計方法先前在論壇中看了一位朋友讓大家給他查看一下他寫的推箱子游戲為什么出錯,我第一想法就是這很難做到,別人寫的程序,特別是實現(xiàn)流程和邏輯只有作者本人比較清楚,外人是要花費一定時間才能把握程序的中主體設(shè)計思想再進一步研究。我想除了學習或項目要求是很少人愿意花這樣的精力去讀別人的代碼的,而粗看他的代碼,我覺得是他本人在程序設(shè)計的思想上出了差錯,而細想現(xiàn)在對引擎或硬件知識介紹的多卻很少有講解怎么實現(xiàn)對現(xiàn)實的抽象,即怎么合理的去設(shè)計游戲,實用軟件......所以想寫這樣一篇文章來和大家探討一下“棋盤”游戲的設(shè)計思路。??“棋盤”游戲的種類豐富

2、,俄羅斯方塊,推箱子,象棋,五子棋......等等這些都可以歸類到“棋盤”游戲中來。面對這類游戲設(shè)計的時候,我本人的見解是首先對“棋盤”做研究,實在不行再去研究“棋子”。換句話說,就是以游戲中的活動區(qū)域為研究對象,像象棋就是他的棋盤,俄羅斯方塊就是他整個的方塊的活動區(qū)域。我們這里姑且就把他叫做“棋盤法”。??一.“棋盤法”基本實現(xiàn)方法??“棋盤法”實現(xiàn)起來其實很簡單,一般來說就是把棋盤看作一個網(wǎng)格,那么我們就把他看作與之對應的二維數(shù)組。然后適當組織數(shù)據(jù)結(jié)構(gòu)去抽象旗子,制定規(guī)?則,這樣就很容易實現(xiàn)游戲。??二.“棋盤法”的優(yōu)缺點??任何一個算法或思想

3、都是有優(yōu)缺點的,而我們的“棋盤法”的最大優(yōu)點就是可以方便我們組織數(shù)據(jù)結(jié)構(gòu),簡化了游戲規(guī)則的編寫,使我們編程時思路比較清晰直觀,通常就是直接根據(jù)游戲?qū)嶋H規(guī)則編寫就可以了,這個我們會以實例加以說明。然而他最大的缺點就是可能耗費大量內(nèi)存,試想,如果我們的棋盤規(guī)格很大,那我們就得開辟一個比較大的二維數(shù)組,并且如果你要將代碼移植到單片機,ARM等硬件平臺上。那你就不得不考慮自己的方法問題,在這些硬件平臺上內(nèi)存資源是極其寶貴的。也許有朋友會說那在PC機上總可以的。的確現(xiàn)在PC機資源豐富,功能強大,可有時候還是不能如你所愿。一個很經(jīng)典的例子就是五子棋的人工智能,

4、為了讓五子棋在人機對戰(zhàn)中具備攻防兼?zhèn)涞闹悄?,我們只有開辟一個于棋盤規(guī)格相呼應的二維的樹組來記錄棋盤上各點的勝算幾率,(有興趣的朋友可以到網(wǎng)上去找找資料)這樣的話,在DOS下你就只能開辟一個約10X10的棋盤,即使在WINDOS下也只能大約16X16的棋盤。(當然,這里是說直接開辟數(shù)組,采用特別技術(shù)的不算)。所以說,這個“棋盤法”也是有他自己的限制的。??三.“棋盤法”的適用條件??根據(jù)上面的介紹,我們應該很容易總結(jié)出“棋盤法”的適用條件。即棋盤規(guī)格適中,棋子會頻繁的在棋盤中移動。游戲規(guī)則若復雜更應首先推選“棋盤法”。很好的一個例子就是象棋。象棋的走

5、法規(guī)則復雜,而采用棋盤法就可以很直觀的把規(guī)則做出來。當然其中要注意的是,程序員要考慮好使用內(nèi)存的大小,考慮好游戲編寫方法和內(nèi)存數(shù)據(jù)管理技巧的相匹配。比如,一個很經(jīng)典的游戲--貪食蛇。他就不適合用“棋盤法”或是說用這個方法不合算。貪食蛇的棋盤很大,可蛇身并不會很大,若采用“棋盤法”那內(nèi)存無疑是浪費,而且在規(guī)則實現(xiàn)上也是直接以蛇身作為研究對象好解決問題。所以在編寫這類游戲時得在宏觀上對他有個較全面的考慮。??四.“棋盤法”的例子??前面說過,可以用“棋盤法”編寫的游戲很多,我們以前玩的小游戲我基本都寫過,基于方便說明問題和論壇朋友提出的幫忙看看他的推箱

6、子游戲。那下面我們就拿推箱子游戲來說明“棋盤法”的編寫過程。?1.前期準備??在編寫這個游戲之前,我們先個游戲找個主題,我的是“植樹”。即“箱子其實就是樹,由一個小人搬運到樹坑中。首先我們開辟一個12X12大小的二維數(shù)組作為棋盤。然后我們思考一下推箱子的棋子有哪些?一個是小人,可移動的數(shù),還有樹坑。我們的游戲過程也很簡單,在棋盤上有一圈籬笆,這個是小人的活動方法,其中有幾個固定的樹坑,還有分散在不同地方的樹,小人要推動這些樹全部進入樹坑就算游戲通關(guān)。有了以上思考,我們就著手來實現(xiàn)。??2.定義數(shù)據(jù)??我們開辟一個12X12的二維數(shù)組表示棋盤,然后我

7、們來定義個數(shù)值代表的含義。數(shù)值為0表示此格子為背景,1表示為籬笆,2表示為樹,3表示為樹坑,4表示人小人,5表示為樹已移植到樹坑。?有了此定義,我們就寫出顯示各棋子的模塊:voidDot_pawn(charx,chary,charmode);/*在棋盤相應位置畫出棋子,其中mode為0表示背景,1表示籬笆,2表示未移植樹,3表示樹坑,4表示人,5表示樹種坑中*/voidDot_pawn(charx,chary,charmode){char*name_bmp;switch(mode)/*根據(jù)Mode決定顯示的圖片*/{case0:name_bmp="

8、kong.bmp";break;case1:name_bmp="liba.bmp";break;case2:name_bm

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。