https://pastein.ru/t/JJ

  скопируйте уникальную ссылку для отправки



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;
	}
	
}