public void move(Apple apple){
GameObject newHead = createNewHead();
if (checkCollision(newHead) == true) {
isAlive = false;
return;
}
else if (newHead.x >= SnakeGame.WIDTH || newHead.x < 0 || newHead.y >= SnakeGame.HEIGHT || newHead.y < 0) {
isAlive = false;
return;
}
if (newHead.x == apple.x && newHead.y == apple.y){
checkCollision(newHead);
snakeParts.add(0, newHead);
apple.isAlive = false;
}
else
removeTail();
}package com.javarush.games.snake;
import com.javarush.engine.cell.*;
public class SnakeGame extends Game{
public static final int WIDTH = 15;
public static final int HEIGHT = 15;
private Snake snake;
private Apple apple;
private int turnDelay;
@Override
public void initialize(){
setScreenSize(WIDTH,HEIGHT);
createGame();
}
private void createGame(){
snake = new Snake(WIDTH/2, HEIGHT/2);
//Apple apple = new Apple(5,5);
createNewApple();
drawScene();
turnDelay = 300;
setTurnTimer(turnDelay);
//apple.draw(this);
}
private void drawScene(){
for(int x=0;x<15;x++)
for (int y=0;y<15;y++){
setCellValueEx(x,y,Color.DARKSEAGREEN,"");
}
snake.draw(this);
apple.draw(this);
}
public void onTurn(int step){
snake.move(apple);
if (apple.isAlive == false)
createNewApple();
drawScene();
}
public void onKeyPress(Key key){
if (key == key.UP)
snake.setDirection(Direction.UP);
else if (key == key.DOWN)
snake.setDirection(Direction.DOWN);
else if (key == key.RIGHT)
snake.setDirection(Direction.RIGHT);
else if (key == key.LEFT)
snake.setDirection(Direction.LEFT);
}
private void createNewApple(){
Apple apple1 = new Apple(getRandomNumber(WIDTH), getRandomNumber(HEIGHT));
apple = apple1;
}
}