貪吃蛇的演算法分析(3) (轉)
WormLink類:namespace prefix = o ns = "urn:schemas--com::office" />
貪吃蛇是由一節一節組成的。因為它經常有一些節連成一條直線形成段,所以這是一種相對有效的方法來儲存整個蛇。[X,Y]表示段頭部的座標,然後段的頭部開始按照方向向後畫若干節。(段的頭尾和蛇的頭尾不是一個概念)
下面程式碼段是WormLink中的段得屬性:
// 段頭部座標
private int x, y;
// 段長度
private int len;
// 移動方向
private byte dir;
下面重點介紹幾個重要:
l public void decreaseLength()
這是從段的頭部減少一格
// 首先段的總長度減少1
len--;
switch (dir) { // 不同的方向左邊的改變也不一樣
case Worm.LEFT:
x--; break;
case Worm.RIGHT:
x++; break;
case Worm.UP:
y--; break;
case Worm.DOWN:
y++; break; }
l public boolean contains(int x, int y)
判斷所給的座標[x,y]是否包含在段中
switch (dir) { // 不同的方向判斷的方法也不一樣
case Worm.LEFT:
return ((y == this.y) && ((x <= this.x) && (x >= getEndX())));
case Worm.RIGHT:
return ((y == this.y) && ((x >= this.x) && (x <= getEndX())));
case Worm.UP:
return ((x == this.x) && ((y <= this.y) && (y >= getEndY())));
case Worm.DOWN:
return ((x == this.x) && ((y >= this.y) && (y <= getEndY())));
}
l public int getEndX()
得到這一段的尾部x座標(段方向指向的最後一格的座標),當這段是蛇的頭部段時,得到的是頭部最前面的座標。
// 不同的方向判斷方法不一樣
if (dir == Worm.LEFT)
return x-len;
if (dir == Worm.RIGHT)
return x+len;
return x;
關於作者:
沈晨,高階員,SCJP
to:JinaShen@BenQ.com">JinaShen@BenQ.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982173/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python3 貪吃蛇Python
- 貪吃蛇
- 04 貪吃蛇
- 貪吃蛇jsJS
- 溫習資料演算法—貪吃蛇演算法
- 《貪吃蛇巴士》:《貪吃蛇》和《瘋狂計程車》的「完美結晶」
- Python:遊戲:貪吃蛇Python遊戲
- python實現貪吃蛇Python
- Java實現貪吃蛇Java
- 貪吃蛇c原始碼原始碼
- [譯] RxJS 遊戲之貪吃蛇JS遊戲
- C語言貪吃蛇原始碼C語言原始碼
- Python實現貪吃蛇大作戰Python
- 貪吃蛇完整版小案例
- OpenGL實現貪吃蛇程式碼
- pygame試水,寫一個貪吃蛇GAM
- C語言實現桌面貪吃蛇C語言
- 貪吃蛇大作戰JavaFx版完整原始碼Java原始碼
- 用 Python 寫個貪吃蛇,保姆級教程!Python
- vue3 自定義渲染器 + canvas 寫一個《貪吃蛇?》VueCanvas
- 自動玩貪吃蛇的小白痴機器人機器人
- Android-貪吃蛇小遊戲-分析與實現-Kotlin語言描述Android遊戲Kotlin
- .NET分散式Orleans - 9 - 貪吃蛇專案演示分散式
- STM32最小系統板OLED貪吃蛇
- 【Python】 Python小遊戲-貪吃蛇大冒險Python遊戲
- 爽!用golang 手擼了個簡單的貪吃蛇Golang
- h5+js實現單機版貪吃蛇H5JS
- C語言小遊戲------貪吃蛇----小白專用C語言遊戲
- 開發Windows貪吃蛇遊戲——(一)前期準備Windows遊戲
- GUI 基於Swing製作貪吃蛇小遊戲GUI遊戲
- js+jquery實現貪吃蛇經典小遊戲JSjQuery遊戲
- JavaScript-開發一個簡單的貪吃蛇小遊戲JavaScript遊戲
- 利用python實現簡易版的貪吃蛇遊戲(面向python小白)Python遊戲
- c/c++實現簡單的貪吃蛇視覺化遊戲C++視覺化遊戲
- (完整原始碼)貪吃蛇小遊戲——HTML+CSS+JavaScript實現原始碼遊戲HTMLCSSJavaScript
- .NET分散式Orleans - 8 - 貪吃蛇專案實戰(準備階段)分散式
- 從零開始學 Web 之 JavaScript 高階(一)原型,貪吃蛇案WebJavaScript原型
- 100行Python程式碼實現貪吃蛇小遊戲(超詳細)Python遊戲
- C++自定義貪吃蛇Snake類一系列問題的解決C++