https://pastein.ru/t/tT

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



public class Logic {
	//массив для игрового поля игрока
	public int[][] masPlay;
	
	//конструктор класса
	public Logic() {
		masPlay = new int[10][10];
	}
	
	public void start() {
		//Очищаем игровое поле игрока
		for(int i = 0; i< 10; i++) {
			for(int j=0; j<10; j++) {
				masPlay[i][j]= 0;
			}
		}
	}
	
	//проверка выхода за границу массива
	private boolean checkBounds(int i, int j) {
		if (( (i>=0) && (i<=9) ) && ( (j >= 0) && (j<=9) ) ) 
			return true;	
		else 
			return false;
	}
	
	
	//запись значения в массив
	private void setValue(int[][] array, int i, int j, int value) {
		if(checkBounds(i,j) == true) {
			array[i][j] = value;
		}
	}
	
	private void surroundShip(int[][] array) { //okrEnd
		for(int i =0; i< 10; i++) {
			for(int j = 0; j < 10; j++) {
				//Если значение элемента в массиве равно -2,то заменяем его на -1
				if(array[i][j] == -2) 
					array[i][j] = -1;
			}
		}
	}
	
	private boolean shipCheckAvailable(int[][] array, int i, int j) {
		//Если выход за границы массива
		if(checkBounds(i,j) == false)
			return false;
		//Если в этой ячейки находится значение 0 или -2, то она нам подходит
		if((array[i][j] == 0) || (array[i][j] == -2)) 
			return true;
		
		return false;
	}
	
	//создание 4х палубного корабля
	private void createFour(int[][] array) {
		//координаты головы корабля
		int i = 0, j = 0;
		//создаем первую палубу
		i = (int)(Math.random() * 10);
		j = (int)(Math.random() * 10);
		
		//Помещаем в ячейку число 4
		array[i][j] = 4;
		//окружаем минус двойками
		surroundCreating(array,i,j,-2);
		
		//Выбираем случайное направление построения корабля
		//0 -- вверх, 1 - вправо, 2 - вниз, 3 влево
		int direction = (int)(Math.random()*4);
		
		if(direction == 0) {
			if(shipCheckAvailable(array, i-3, j) == false) {
				direction = 2;//меняем на вниз
			}
		}
		
		else if(direction == 1) {//вправо
			if(shipCheckAvailable(array, i, j+3) == false) {
				direction = 3;
			}
		}
		else if (direction == 2) {
			//вниз 
			if(shipCheckAvailable(array, i+3, j) == false) {
				direction = 0;
			}
		}
		else if(direction == 3) {
			//Если выход за границу массива
			if(shipCheckAvailable(array, i, j-3) == false) {
				direction = 1;
			}
		}
		
		if(direction == 0) {
			//помещаем в ячейку число четыре
			array[i-3][j] = 4;
			surroundCreating(array,i-3,j, -2); // окружение -2 
			//surroundShip меняем -2 на -1
			array[i-2][j] = 4;
			surroundCreating(array, i-2, j, -2);
			array[i-1][j] = 4;
			surroundCreating(array, i-1, j, -2);
		}
		if(direction == 1) {
			array[i][j+3] = 4;
			surroundCreating(array,i,j+3, -2);
			array[i][j+2] = 4;
			surrondCreating(array,i,j+2, -2);
			array[i][j+1] = 4;
			surrondCreating(array,i,j+1, -2);
		}
		if(direction == 2) { 
			array[i+3][j] = 4;
			surroundCreating(array,i+3,j,-2);
			array[i+2][j] = 4;
			surroundCreating(array,i+2,j,-2);
			array[i+1][j] = 4;
			surroundCreating(array,i+1,j,-2);			
		}
		if(direction == 3) { 
			array[i][j-3] = 4;
			surroundCreating(array,i,j-3,-2);
			array[i][j-2] = 4;
			surroundCreating(array,i,j-2,-2);
			array[i][j-1] = 4;
			surroundCreating(array,i,j-1,-2);			
		}
	}
}