Дек
08
2025

🚢 Battleship – адаптация морской боя под Android

🚢 Battleship – адаптация морской боя под Android

Адаптация классической игры «Морской бой» под Android с атмосферой школьной тетради, умным ботом и чистой архитектурой.

👨‍💻 Роль: Full-cycle Developer (Architecture, UI/UX, Logic, QA, Release)
🛠 Стек: Kotlin, Jetpack Compose, MVVM, Clean Architecture
⚙️ Технологии: Coroutines, StateFlow, JUnit 4, Canvas API, SoundPool
🚀 Результат: Google Play Ready APK (Signed & ProGuard Optimized)


💡 Задача

Цель проекта — пройти полный цикл разработки мобильного приложения: от идеи в голове до готового APK файла. Я хотел создать не просто очередную «настолку», а продукт с душой.

Ключевые требования:

  • 🎨 Визуал: Полная имитация рисования ручкой в тетради. Никаких растровых картинок, всё рисуется кодом.
  • 🧠 AI: Бот не должен стрелять рандомно. Он должен «думать» и быть опасным.
  • 📱 Адаптивность: Игра должна идеально выглядеть и на телефоне, и на планшете, в вертикальном и горизонтальном режиме.

🛠 Решение

1. UI/UX: Jetpack Compose & Canvas

Я отказался от тяжелых картинок. Всё поле, сетка, корабли и анимации («Х» при попадании, круги при промахе) рисуются программно через Canvas API.

  • ✅ Это дало идеальную четкость линий на любых экранах.
  • ✅ Приложение весит экстремально мало.
  • Smart UX: Реализована удобная система расстановки кораблей. Если корабль не влезает при повороте, алгоритм сам «поддвигает» его (Smart Pivot Rotation).

2. Архитектура: Clean Arch + MVVM

Проект построен на принципах чистой архитектуры. Логика игры (Domain Layer) полностью отделена от Android-компонентов.

  • Model: Хранит состояние поля и кораблей.
  • ViewModel: Управляет потоками данных (StateFlow) и обрабатывает действия игрока.
  • UI: Реактивный интерфейс на Compose, который просто «рисует» текущее состояние.

3. «Охота и Цель» (AI Logic)

Реализован бот с двумя уровнями сложности. На уровне Hard он использует алгоритм Hunt & Target:

  1. Стреляет по карте вероятностей.
  2. При попадании переходит в режим «Охоты»: вычисляет направление корабля.
  3. Добивает корабль до уничтожения, прежде чем искать новый.

⚡ AI-Augmented Workflow

В разработке я использовал современные ИИ-инструменты (AI-IDE) как «второго пилота».

  • 🚀 Скорость: Генерация Unit-тестов и бойлерплейт-кода ускорилась в 3 раза.
  • 🛡️ Качество: ИИ помогал находить граничные случаи (edge cases) в логике поворота кораблей.
  • 🎨 Ресурсы: Иконка приложения и концепты дизайна сгенерированы нейросетями.

📸 Галерея


📥 Попробовать

Приложение полностью готово, подписано релизными ключами и оптимизировано.

💾 Скачать APK (Release 1.0)

💻 Смотреть код на GitHub