貪吃蛇也算是一個經典的遊戲了. 寫了一個簡單的實現,運行截圖如下
這個實現很簡單.就是在畫布上用不同的顏色畫一個個的小矩形.實現很簡單,就不貼代碼了.只寫上最主要的實現思路
蛇的移動.其實就是把蛇尾用背景色覆蓋掉,把蛇頭(上下左右)移動倒一個適當的位置.而蛇的身體的其他位置都不變的.假如用一個鏈表保存蛇的身體的各個部位的位置.那就是刪除表尾,改變成適當的座標再加入表頭,然後重畫蛇體,就完成了蛇的移動了.
重繪完全沒有必要把所有的背景都重繪一遍,只需要繪製表頭和表尾所代表的位置就好了..具體就不實現了.
蛇的生長.假如我們每次移動蛇體之前都保存蛇尾的位置座標.那麼當蛇吃到蘋果長大的時候,就把增長的位置設置爲上次蛇尾的位置.這樣就實現了蛇的增長了.
就這麼多.簡單吧.
在寫程序的時候先觀察要實現的功能的特點.然後想一個好的實現方法.至於寫代碼就簡單多了. 大多時候並不是自己沒有能力寫一個程序,而是沒有足夠的耐心考慮好它的實現,就開始動手寫代碼了,最終往往不得修改了又修改,最終還是失敗.然而最簡單的那個是最好的實現卻往往被手頭的已經一堆的代碼給排擠忽略掉了,多遺憾啊.
2010-7-6 更新了一下代碼:
代碼有點小問題,大家看着修改下,應該不難,最近沒有時間,就這麼貼出來吧.對不住啦.