(五)專案二日誌12 7

2021-10-11 18:51:25 字數 2332 閱讀 8338

物聯網工程 - 李涵 - 182210713119

github:

一、功能設計

二、功能演示

三、總結

對照上表,對個別函式做簡要說明:

init()

rendermap 函式rendermap函式為初始化遊戲背景,利用html dom技術,動態生成25*25的網狀格仔。

rendermap()

//行加到列上面

this

.map.

(row)

;this

.maps.

push

(arr);}

}

rendersnake 函式rendersnake函式渲染蛇,即根據地圖的座標資訊,將蛇頭與蛇身的div 設定為對應的顏色。

rendersnake()

}

rendomfood函式rendomfood函式功能為隨機在地圖中生成食物,利用**math.random()**函式即可實現,之後再根據座標資訊,在地圖中渲染食物。

randomfood()

this

.food.row = row;

this

.food.column = column;

}

rendomfood函式rendomfood函式功能為渲染食物,與上文渲染蛇的方法類似,但為了視覺效果更好,實現了每次更新的食物顏色不同,實現方法是利用math.random函式,給rgb 三通道的顏色值每次賦予隨機生成的數,效果請見下文演示 。

renderfood()

start函式start函式功能為開始遊戲,讓蛇動起來其實很簡單,利用setinterval方法設定乙個定時器即可,通過不斷渲染蛇的最新位置資訊,蛇就能動起來啦!

start函式中還包含其他一些函式,比如需要判斷是否撞牆、是否首尾相撞、是否吃到食物等等,在此就不做詳細說明(github**中有詳細注釋).

start()

//蛇吃食物if(

this

.iseatfood()

)//清除之前的座標資訊

this

.clear()

;//根據蛇的最新座標,重新渲染

this

.rendersnake()

;//重新渲染食物

this

.renderfood()

;},this

.speed)

;}

gameover函式gameover函式功能為當蛇碰壁或者蛇首尾相撞的時候結束遊戲,實現起來及其簡單,就是把start中設定的定時器關掉即可。

gameover()

move()

);}elseif(

this

.direction ===37)

);}elseif(

this

.direction ===40)

);}elseif(

this

.direction ===38)

);}}

gorwup函式growup函式的功能為增長,即蛇吃了食物後蛇身長度加一,實現起來也很容易,就是把剛剛move的時候蛇尾去掉的元素push進陣列即可!

growup()

!!!

最後,new物件

game =

newgame

('#game'

,new

snake()

,new

food()

);

由於介面跳轉,背景**,操作控制、難度控制等功能還未實現,下面只演示蛇移動,以及蛇吃食物的效果。

實驗五專案三

檔名稱 完成日期 2017年4月24日 版本號v1.0 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 問題分析 演算法設計 一問題及 include include using namespace std class book public void setbook string na,...

團隊專案(五)專案回顧

專案 內容所屬課程 18安卓軟體工程 作業簡介 按照專案回顧模板開展事後諸葛亮會議並撰寫回顧報告 作業要求 團隊專案 任務五 專案回顧 作業目的 通過回顧軟體設計 開發 測試 構建 發布的整個過程以及團隊合作狀態總結經驗教訓 參考資料 構建之法 學生姓名 呂家正 倉庫 會議地點 線上會議 參會人員 ...

團隊專案五(專案回顧)

專案內容 所屬課程 18級安卓軟體工程 作業簡介 按照專案回顧模板開展事後諸葛亮會議並撰寫回顧報告 作業要求 團隊專案 任務五 專案回顧 作業目的 通過回顧軟體設計 開發 測試 構建 發布的整個過程以及團隊合作狀態總結經驗教訓 參考資料 菜鳥 學生姓名 張鑫 倉庫 俄羅斯方塊大全 姓名職務 回顧總結...