pygame做的著名游戏_pygame教程(十):汉诺塔游戏
生活随笔
收集整理的這篇文章主要介紹了
pygame做的著名游戏_pygame教程(十):汉诺塔游戏
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
這一章我們繼續(xù)來(lái)學(xué)習(xí)游戲的設(shè)計(jì),帶孩子去科技館,看到有一種叫做“漢諾塔”的小游戲,這個(gè)智力游戲應(yīng)該很多同學(xué)聽(tīng)說(shuō)過(guò),它首先在三根柱子中的第一根上擺放大小不一的圓盤,然后要求玩家用最少的步數(shù)、最短的時(shí)間將第一根柱子上的圓盤通過(guò)第二根柱子移動(dòng)到第三根柱子上。我們來(lái)看一下游戲的最終動(dòng)畫(huà):游戲開(kāi)發(fā)步驟
部分難點(diǎn)介紹
保存三根柱子的狀態(tài)
可為三根柱子分別設(shè)置三個(gè)數(shù)組,保存著各自的圓盤rect,而且從大小到排列,為方便起見(jiàn),可將柱子的底盤也加入該數(shù)組,這樣就始終可以用各數(shù)組的最后一個(gè)來(lái)進(jìn)行比較:對(duì)玩家點(diǎn)擊進(jìn)行判斷因?yàn)橥婕倚枰群簏c(diǎn)擊兩根柱子才能移動(dòng),這就需要設(shè)計(jì)移動(dòng)策略:移動(dòng)圓盤
程序在玩家模式下只是簡(jiǎn)單將圓盤從一根柱子移動(dòng)到另一根柱子,如果按向上箭頭,即完成“飛盤”演示動(dòng)畫(huà),移動(dòng)圓盤的代碼如下:漢諾塔的解法
漢諾塔的解法其實(shí)只是一個(gè)遞歸循環(huán),現(xiàn)將代碼給出:控制臺(tái)打印圖如下所示:將自動(dòng)演示納入游戲
可將上述代碼納入小游戲中,這樣子更便于玩家研究“漢諾塔”的移動(dòng)規(guī)律。自動(dòng)演示只是將上述漢諾塔解法生成的數(shù)據(jù)傳遞給移動(dòng)函數(shù),同時(shí)加入動(dòng)畫(huà)即可,代碼如下:五階的動(dòng)畫(huà)演示:
小結(jié)由上文可以看出,漢諾塔的解法是典型的遞歸法,但在制作游戲時(shí)其實(shí)用不到其解法,只需要忠實(shí)記錄和按游戲規(guī)則規(guī)范玩家的動(dòng)作即可,從兩者對(duì)比也可以看出,解法與游戲的設(shè)計(jì)有聯(lián)系,但側(cè)重點(diǎn)是不同的,畢竟面向的方向不同,所以盡管同學(xué)們可能對(duì)解法不一定能熟悉,但是只要掌握了游戲的設(shè)計(jì)要領(lǐng),同樣可以制作出好玩的游戲。其它教程:
pygame教程(一):基礎(chǔ)知識(shí)pygame教程(二):繪制幾何圖形pygame教程(三):動(dòng)畫(huà)初步pygame教程(四):添加文字和播放聲音pygame教程(五):添加鼠標(biāo)和鍵盤響應(yīng)pygame教程(六):迷宮小游戲(1)pygame教程(七):迷宮小游戲(2)pygame教程(八):數(shù)字華容道游戲pygame教程(九):猜數(shù)字游戲總結(jié)
以上是生活随笔為你收集整理的pygame做的著名游戏_pygame教程(十):汉诺塔游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python中编完类后到实例编写_[零基
- 下一篇: python考试pass or fail