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