所以,我用人工智能创建了我自己的蛇游戏,但现在我有非常非常奇怪的蛇动作。
所以,我的算法是:
- 获取地图:1 - 路径清晰,0 - 没有路径(墙壁,蛇)
- 获取水果位置
- 获取 SnakeAI 头部位置
- 将其发送到 A* 算法(正常工作)
- 获取路径(点阵;end为水果位置,start为snakeAi头部)
- 设置snakeAI的方向
private void AI() {
Point s = new Point();
//SnakeAI head
Point n = new Point();
//Food
n.x = food.x / 13;
n.y = food.y / 13;
s.x = snakeAI.getBody().get(0).x / 13;
s.y = snakeAI.getBody().get(0).y / 13;
int px;
int py;
//Path
g = f.findPath(map, n, s);
if (g.size() > 0) {
//Next snake positin
px = g.get(g.size() - 1).x;
py = g.get(g.size() - 1).y;
} else {
return;
}
if (s.x == px) {
//Move UP
if (s.y > py) {
snakeAI.setDirection(Snake.DIR_UP);
}
//Move DOWN
if (s.y < py) {
snakeAI.setDirection(Snake.DIR_DOWN);
}
}
if (s.y == py) {
//Move LEFT
if (s.x > px) {
snakeAI.setDirection(Snake.DIR_LEFT);
}
//Move RIGHT
if (s.x < px) {
snakeAI.setDirection(Snake.DIR_RIGHT);
}
}
}
所以,我在一周左右与那个错误的动作作斗争,我真的不知道错误在哪里。尤达大师,帮帮我。