Морской бой
🎮 Морской бой — Школьная классика 1.02
Возьмите в руки синюю шариковую ручку, откройте тетрадь в клеточку и приготовьтесь к настоящей битве на морских просторах!
Эта игра — современная цифровая версия легендарной школьной забавы, выполненная в уютном и ностальгичном стиле школьной тетради.
✨ Особенности игры
-
🎨 Уникальный визуальный стиль — всё как в тетради: клеточки, красная линия слева, «чернильные» пометки.
-
🔊 Реалистичные звуки — плеск воды, взрывы, победа и поражение.
-
🤖 Два режима игры:
-
Против компьютера — умный ИИ с тактикой «добивания» раненых кораблей.
-
По сети — играйте с другом на разных устройствах.
-
-
📊 Подробная статистика — точность стрельбы, количество потопленных кораблей, визуальная сводка под полем противника.
-
🎯 Анимированная стрелка-указатель — показывает, кто сейчас стреляет и в каком направлении.
📘 Правила игры (классические)
-
Цель — первым потопить все корабли противника.
-
Корабли:
-
1 линкор (4 клетки)
-
2 крейсера (3 клетки)
-
3 эсминца (2 клетки)
-
4 катера (1 клетка)
-
-
Расстановка:
-
Корабли не должны касаться друг друга (даже по диагонали).
-
Можно поворачивать корабль клавишей
R. -
Есть кнопка «Расставить случайно».
-
-
Ход игры:
-
Попал — ходишь ещё раз.
-
Промахнулся — ход переходит к противнику.
-
Потопленный корабль отмечается чёрным цветом, а вокруг него ставятся точки (как в тетради).
-
🌐 Сетевая игра: правила и настройка
🎪 Как играть вдвоём по сети
| Шаг | Действие | Описание |
|---|---|---|
| 1 | Выберите «По сети» в главном меню | |
| 2 | Создатель игры нажимает «Создать игру» | Игра создаст сервер на порту 5555 |
| 3 | Подключающийся вводит IP-адрес создателя и нажимает «Подключиться» | Можно использовать 127.0.0.1 для игры на одном компьютере |
| 4 | Оба игрока расставляют корабли | После расстановки нужно нажать «Готов» |
| 5 | Игра начинается автоматически | Первым ходит создатель игры |
📡 Важные моменты для сетевой игры
-
🔄 Порядок хода определяется автоматически:
-
Хост (создатель) ходит первым.
-
Клиент (подключающийся) ходит вторым.
-
-
📶 Статус подключения отображается в реальном времени:
-
«Противник подключён!»
-
«Ожидание подключения...»
-
-
⏱ Таймаут — 30 секунд на подключение.
-
🔧 Если что-то пошло не так — используйте кнопку «Отмена» и попробуйте снова.
🎯 Тактические подсказки
-
🎯 Стреляйте по диагоналям — корабли чаще всего ставят с отступами.
-
🔍 Ищите закономерности — если попали, обстреливайте соседние клетки.
-
🚫 Не забывайте про «запрещённые клетки» — вокруг потопленного корабля нельзя ставить другие корабли, но можно в них стрелять (там уже будут точки).
-
📊 Следите за статистикой под полем противника — там видно, сколько кораблей каждого типа осталось.
🎨 Визуальные обозначения
| Элемент | Описание | Цвет / Стиль |
|---|---|---|
| Клетка поля | Обычная тетрадная клетка | Синие линии |
| Корабль игрока | Контур корабля | Синяя ручка (тонкий контур) |
| Потопленный корабль | Залит чёрным, обведён синим | Чёрная заливка + синий контур |
| Попадание | Красный кружок с белым крестиком | Красный |
| Промах | Синий кружочек | Голубой |
| Клетки вокруг потопленного | Точки как при промахе | Голубые точки |
| Стрелка направления | Показывает, кто куда стреляет | Синяя → игрок, Красная → противник |
🕹 Управление
-
ЛКМ — разместить корабль / сделать выстрел / нажать кнопку.
-
R — повернуть корабль при расстановке.
-
ESC — выход из игры.
🎵 Звуковое сопровождение
-
🌊 Плеск воды — при промахе.
-
💥 Взрыв — при попадании.
-
🔊 Мощный взрыв — при потоплении корабля.
-
🎉 Победный гимн — при победе.
-
😢 Грустный звук — при поражении.
🔄 Перезапуск и меню
-
«Новая игра» — начинает заново в том же режиме.
-
«Главное меню» — возврат к выбору режима (сетевые игры отключаются).
📱 Технические особенности
-
🐍 Написано на Python с использованием Pygame.
-
🌍 Сетевое взаимодействие через сокеты (TCP).
-
🧠 Искусственный интеллект с алгоритмом «охоты» за ранеными кораблями.
-
📁 Звуки и иконка загружаются из папок
sound/иimg/.
*Игра создана для тех, кто помнит, как это — рисовать кораблики на полях тетрадки и шептать: «Е-1 — ранил!».
Приятной игры и точных вам выстрелов!* 🎯🚢