FIELD[x1 - 65][y1 + i] = SHIP;
ships.put(String.valueOf(x1) + y1++, shipType.name);
}
Выдаёт ArrayIndexOutOfBoundsException во второй строке. Если закомментировать третью строку, то всё работает. ЧЗНХ???
У вас в третьей строке идёт увеличение y1 на единицу. А данное число участвует в получении элемента из массива. Так как не совсем понятно, что делает код. Первое что приходит в голову сделать y1+1 заместо y++
А ещё лучше, писать правильно переменные, и что они делают, что бы хоть кто то мог понять что ты пишешь. Если код будет хотя бы на 40 строк, ты час на него не посмотришь, и потом опять сядешь смотреть, ты тупо сам не сможешь понять что он делает
Нет, я не от балды букву взял, это начальная координата на игровом поле
ships.put(String.valueOf(x1) + y1 + i, shipType.name);
Тока все равно не понятно, что ваш код делает и мое решеное явно не выход
Нет, как раз выход, спасибо, это морской бой. Это делается расстановка кораблей на игровом поле, каждая координата в виде ключа кладётся в мапу. При попадании извлекается
Просто в вашем коде, вы сначала использовали y1 а потом увеличили на единицу. В моём предложенном коде, я общее знание уже увеличил на единицу
Обсуждают сегодня