Java學習總結之貪喫蛇項目程序分析

分析設計:通過學習聊天室項目和坦克大戰項目,我感覺已經初步掌握了一些面向對象的程序設計方法,所以在看這個項目的視頻之前,我自己先進行了一些設計。

大家應該都玩過貪喫蛇這個小遊戲,暫時呢,我覺得至少應該有三個類,一個是界面類,一個是蛇,還有一個是豆。

界面類:跟之前的坦克大戰等項目一樣,界面類都是必不可少的。首先考慮界面類的成員屬性,界面應該有大小,也就是寬和高,界面中應該有蛇和豆,也就是一個蛇類對象和一個豆類對象。然後是成員方法,有構造方法,有界面各參數的初始化方法launch,初始化過程中需要添加窗口監聽器WindowListener和鍵盤監聽器KeyListener。初始化之後要顯示圖形有paint方法,顯示之後還要不斷刷新要有PaintThread類,刷新最好將刷新頻率設置爲一個常量。綜上,

SnakeFrame

-WINDOW_H

-WINDOW_W

-SPEED

-Snake

-Bean

+launch()

+paint()

話說像KeyListener這種內部類還有線程該怎麼表示?博主不會的說。。。

蛇:蛇應該是由一個個節點組成,所以應該有個內部類Node,然後有個盛放節點的容器LinkedList    nodeList,其中有兩個特殊的節點頭結點和尾節點(也有可能用不到,LinkedList類中應該有相關方法),蛇頭的方向direction  ,蛇身長度length。然後是成員方法,自身的繪製方法draw,移動方法move,判斷是否喫到豆的eat方法,喫到豆後增加長度的addNode方法,還有對按鍵的響應keyPressed方法。

在內部類Node中,應該有表示自身位置的座標x,y,圖形大小SIZE,自身繪製方法draw,還有用於碰撞檢測的getRectangle方法。

Snake

-head

-tail

-length

-direction

-nodeList

+draw()

+move()

+eat()

+addNode()

+keyPressed()

Node

-x

-y

-SIZE

+draw()

+getRectangle()

 

豆類:這個比較簡單,表示位置的座標x,y,豆的直徑SIZE,自身繪製方法draw,碰撞檢測的getRectangle,被喫掉以後新增一個豆的方法newBean

-x

-y

-SIZE

+draw()

+getRectangle()

+newBean()

 

程序分析就到這裏,接下來是程序的編寫過程和源代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章