public class Logic {
//Двумерный массив для хранения игровой сетки
public int[][] array;
public int direction;
public int headX, headY;
public int scored;
//Конструктор класса
public Logic() {
array = new int[30][30];
}
//генерация нового яблока в случайном месте
public void create_obj () {
//бесконечный цикл
while(true) {
int x = (int)Math.round(Math.random()*30);
int y = (int)Math.round(Math.random()*30);
//Если в этом месте, где должно появиться яблоко
//нулевое значение, то мы туда помещаем яблоко
//и прерываем цикл
if(array[y][x]==0) {
array[y][x]=-1;
//прерываем цикл
break;
}
}
}
public void start() {
//Заполняем весь массив нулями
for(int i = 0; i < 30; i++) {
for(int j = 0; j < 30; j++) {
array[i][j] = 0;
}
}
direction = 0;
scored = 0;
headX = headY = 15;
//Размещаем голову змеи по среедине экрана
array[15][15] = 1;
//Формируем яблоко
create_obj();
}
public void moveHead() {
array[headY][headX] = 0;
//Если текущее направление влево
if(direction==0) {
if((headX-1)>=0) {
headX--;
}
else
headX = 29;
}
if(direction==1) {
if((headY-1)>=0) {
headY--;
}
else
headY = 29;
}
if(direction==2) {
if((headX+1)<=29) {
headX++;
}
else
headX = 0;
}
if(direction==3) {
if((headY+1)<=29) {
headY++;
}
else
headY = 0;
}
//если съеден объекта
if(array[headY][headX]==-1) {
//создаем новое яблоко
create_obj();
scored += 10;
}
array[headY][headX] = 1;
}
}