TGViewer
Java Ready | Программирование Java Ready | Программирование @java_ready · 9.25K subscribers
Post #1872 1.86K
Морской бой — делаем консольную игру!

Сделаем рабочую версию: поле 5×5, корабли расставлены, игрок стреляет по координатам. Игра сообщает “попал/мимо” и заканчивается, когда все корабли уничтожены.

Создаём поле и размещаем корабли:
int[][] field = {
{0,1,0,0,0},
{0,1,0,1,0},
{0,0,0,1,0},
{1,0,0,0,0},
{0,0,1,0,0}
};
boolean[][] shots = new boolean[5][5];
int ships = 5;


Функция вывода поля:
void print() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (shots[i][j])
System.out.print(field[i][j] == 1 ? " X " : " * ");
else
System.out.print(" . ");
}
System.out.println();
}
}


Запускаем игровой цикл:
var sc = new java.util.Scanner(System.in);

while (ships > 0) {
print();
System.out.print("Введите координаты (строка и столбец 1-5): ");
int r = sc.nextInt() - 1;
int c = sc.nextInt() - 1;


Проверяем выстрел:
    if (r < 0 || r >= 5 || c < 0 || c >= 5 || shots[r][c]) {
System.out.println("Ошибка ввода!");
continue;
}

shots[r][c] = true;


Логика попадания:
    if (field[r][c] == 1) {
System.out.println("Попал!");
ships--;
} else {
System.out.println("Мимо!");
}
}


Финал игры:
System.out.println("Все корабли уничтожены! Победа!");
sc.close();


Дальше можно прокачать игру добавив случайную генерацию кораблей и подсчёт ходов.

👉 Java Ready | #практика
  • ❤ 8
  • 👍 4
  • 🔥 4
More from @java_ready
  1. Oct 8, 2026Почему String.format может заменить точку на запятую? Представим, что программа сохраняет…
  2. Oct 7, 2026Почему split(".") в Java не делит строку по точке? На первый взгляд кажется, что достаточн…
  3. Oct 6, 2026Безопасная настройка retry для всей системы! В статье Java-разработчик делится опытом внед…
  4. Oct 5, 2026Почему после Stream.toList() нельзя добавить элемент? При работе со Stream часто нужно соб…
  5. Oct 5, 2026Находим три самых популярных товара! Есть поток покупок с повторяющимися названиями. Постр…
  6. Oct 2, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →