貪吃蛇的演算法分析(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 貪吃蛇的演算法分析(1) (轉)演算法
- 貪吃蛇的演算法分析(4) (轉)演算法
- 貪吃蛇的演算法分析(2) (轉)演算法
- 貪吃蛇源程式 (轉)
- Python3 貪吃蛇Python
- Shell寫的貪吃蛇遊戲(轉)遊戲
- 貪吃蛇jsJS
- 04 貪吃蛇
- 初試javascript :貪吃蛇啊 (轉)JavaScript
- 溫習資料演算法—貪吃蛇演算法
- Python:遊戲:貪吃蛇Python遊戲
- Java實現貪吃蛇Java
- 貪吃蛇c原始碼原始碼
- python實現貪吃蛇Python
- jQuery 實現貪吃蛇遊戲jQuery遊戲
- C#貪吃蛇(WPF版)C#
- [譯] RxJS 遊戲之貪吃蛇JS遊戲
- OpenGL實現貪吃蛇程式碼
- C語言貪吃蛇原始碼C語言原始碼
- [原生JS][程式導向]貪吃蛇JS
- WebGL實現HTML5的3D貪吃蛇遊戲WebHTML3D遊戲
- C語言實現桌面貪吃蛇C語言
- Python實現貪吃蛇大作戰Python
- js貪吃蛇遊戲程式碼例項JS遊戲
- canvas貪吃蛇遊戲程式碼例項Canvas遊戲
- 多執行緒的Python 教程--“貪吃蛇”執行緒Python
- 貪吃蛇大作戰JavaFx版完整原始碼Java原始碼
- javascript貪吃蛇小遊戲程式碼例項JavaScript遊戲
- html畫布製作貪吃蛇小遊戲HTML遊戲
- H5遊戲開發:貪吃蛇H5遊戲開發
- vue3 自定義渲染器 + canvas 寫一個《貪吃蛇?》VueCanvas
- 自動玩貪吃蛇的小白痴機器人機器人
- canvas實現的貪吃蛇遊戲程式碼例項Canvas遊戲
- 基於51微控制器的貪吃蛇遊戲遊戲
- 100行JS實現HTML5的3D貪吃蛇遊戲JSHTML3D遊戲
- 用 Python 寫個貪吃蛇,保姆級教程!Python
- 開發Windows貪吃蛇遊戲——(一)前期準備Windows遊戲
- STM32最小系統板OLED貪吃蛇