關於遊戲的介紹:
貪食蛇遊戲是一條不停游動的蛇不斷的捕食來達到自身的增長,但是若蛇碰到自身的身體或者碰到了任何障礙物,則遊戲結束。
在該篇文章中,我並不討論遊戲的規則,而只是實現乙個游動的蛇。通過該實現來看關於物件導向的設計。
尋找規律,建立物件模型:
首先從物理的角度來分析蛇得運動規律。它是蠕動的,像水一樣流動。他有個特性就是身體的每乙個點都經過他頭部所在的點,他每乙個時刻骨節所要運動的目的地是他前乙個骨節所在的位置。
不難看出,其中的物件模型為
蛇,骨骼,骨節,頭
抽象的介面為
蛇,骨骼,骨節,頭,圖元
結構圖:
介面結構圖
骨骼骨骼
物件結構圖
給介面新增行為:
圖元(graphicobject)
繪畫:進行圖元自身的繪畫操作
當前矩形:得到圖元當前所在的矩形,也可考慮使用region,這樣使得對圖元範圍得描述更加具體。
骨節(condyle)
前乙個骨節:提供前序訪問
後乙個骨節:提供後序訪問
流動:進行骨節運動詭計得計算。
骨骼(cadre)(管理骨節鏈)
得到頭:得到蛇頭
得到尾:得到蛇尾
新增骨節:在骨節鏈中新增骨骼
刪除骨節:在骨節鏈中刪掉指定骨節
頭(head)
方向:能夠設定和訪問當前運動方向。
蛇(snake)
增長:蛇進行自身得增長
完善模型,引入訪問者模式
存在的問題:
當前是由具體的骨骼物件來負責圖元的繪畫以及處理流動的,而骨骼只是管理骨節,沒有提供任何訪問骨節的方法,我們應該怎樣訪問骨節呢?比如我們要每個骨節畫出自己的形態,我們可能會這樣做。在骨骼上提供乙個繪畫方法,然後通過遍歷骨節鏈,呼叫每個骨節的繪畫方法。
這樣似乎可以解決問題。那麼,我們要進行骨節流動計算呢?我們再在骨骼上提供流動方法,然後同樣的遍歷骨節,呼叫每個的流動方法。
我們要是加入統計骨節個數功能呢?我們要是加入其他的需要遍歷骨骼的方法呢?……
這樣做的缺點是什麼?
1、 相似的**有多份
2、 如果骨節的訪問結構發生變化,後果會怎樣?
3、 有新功能需要遍歷骨節鏈該怎麼辦?
這樣會迫使我們拷貝**.
解決辦法,引入訪問者模式:
新增加介面如下:
加入行為:
訪問者:(空,無方法,屬性)
被訪問者:
接受訪問者
骨節訪問者:繼承自訪問者
訪問骨節
完整的結構圖:
介面結構圖
物件結構圖
關於小班結構遊戲的思考
結構遊戲是幼兒創造遊戲的一種。所謂結構遊戲,就是幼兒利用各種不同的結構材料,創造性地反映周圍現實生活事物的遊戲。通過這種遊戲,可以讓幼兒獲得關於物體大小 高矮 長短 形狀等簡單的數理知識,以及色彩 對稱 搭配等簡單的造型知識,可以發展幼兒的感知 思維和創造等能力。同時還可以培養幼兒細心 耐心 獨立 ...
關於體育遊戲的調查問卷
問卷的目的 一 調查了解中學生對體育遊戲是否感興趣。二 調查了解中學生對體育遊戲的認知水平。三 調查了解中學生對體育遊戲的作用是否了解。四 調查了解中學生喜愛什麼樣的體育遊戲。中學生對體育遊戲的認知及喜好調查問卷 1.你的性別是 a.女 b.男 2.你所在的年級 a.七年級 b.八年級 c.九年級3...
教師生日會的流程及遊戲
青湖夢之幸福夢 慶祝生日 伴奏 為了保證生日會順利的進行,請各位把手機交出來,放在桌子上,當你的 鈴聲響起,如果你選擇接 那麼請先罰2杯水,如果你的簡訊提示音響起,如果你選擇檢視,那麼請先喝一杯水。請大家遵守規則,全體老師都是裁判。生日齊分享,快樂在青湖 親愛的夥伴們,在這歡聚的時刻,迎來我們青湖學...