openeeer/minesweeper

There is no license information available for the latest version (3.3.0) of this package.

Console Game Minesweeper with SQLite database support

Maintainers

Package info

github.com/openeeer/minesweeper

pkg:composer/openeeer/minesweeper

Statistics

Installs: 9

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

3.3.0 2025-10-27 11:13 UTC

This package is auto-updated.

Last update: 2026-03-27 12:10:02 UTC


README

Проект представляет собой консольную игру "Сапёр" (Minesweeper), реализованную на PHP с поддержкой базы данных SQLite. Игрок открывает ячейки на квадратном поле, избегая мин. Цель игры — открыть все безопасные клетки. Если игрок открывает ячейку с миной, игра заканчивается поражением.

Игра поддерживает интерактивный ввод команд для открытия ячеек и установки флагов, а также встроенную справку, которую можно вызвать в любой момент.

Новые возможности версии 3.3.0

  • Переход на ORM RedBeanPHP для работы с базой данных
  • Упрощенная работа с данными через объектно-реляционное отображение
  • Автоматическое создание таблиц при первом запуске
  • Улучшенная производительность работы с базой данных

Новые возможности версии 2.0.0

  • Автоматическое сохранение партий в базу данных SQLite
  • Три игровых режима: новая игра, просмотр списка партий, воспроизведение сохраненных игр
  • Полная запись ходов с координатами и результатами
  • Воспроизведение партий с пошаговым показом ходов
  • История игр с информацией об игроках, датах и результатах

Правила и команды

Правила игры

  • Игрок открывает ячейки, избегая мин.
  • Если мины нет, ячейка отображает количество соседних заминированных ячеек.
  • Если рядом с открытой ячейкой нет мин, автоматически открывается область незаминированных ячеек до тех пор, пока не встретится ячейка с цифрой.
  • Игрок может устанавливать флаги на подозрительные ячейки.

Режимы игры

  1. Новая игра — начать новую партию с вводом имени игрока, размера поля и количества мин
  2. Список партий — просмотр всех сохраненных в базе данных игр с информацией об игроках, датах и результатах
  3. Повтор партии — воспроизведение любой сохраненной игры с пошаговым показом ходов

Команды во время игры

  • o row col — открыть ячейку с координатами (row, col)
  • f row col — установить или убрать флаг на ячейке (row, col)
  • h — показать справку и правила игры

Ограничения

  • Размер поля не меньше 2.
  • Количество мин от 1 до size*size - 1.
  • Координаты ячеек должны находиться в пределах поля.

Работа с базой данных

Игра автоматически сохраняет все партии в базу данных SQLite (bin/minesweeper.db). Для каждой игры сохраняется:

Информация об игре

  • Дата и время игры
  • Имя игрока
  • Размер игрового поля
  • Количество мин
  • Позиции всех мин на поле
  • Результат игры (Победа/Поражение)

Запись ходов

Каждый ход игрока записывается в формате:

  • Номер хода
  • Координаты ячейки (строка, столбец)
  • Результат хода:
    • мины нет — ячейка открыта успешно
    • взорвался — игрок наступил на мину
    • выиграл — игрок выиграл партию

Воспроизведение партий

При выборе режима "Повтор партии" игра:

  1. Восстанавливает точное расположение мин
  2. Пошагово воспроизводит все ходы игрока
  3. Показывает результат каждого хода
  4. Отображает финальный результат партии

Требования

  1. PHP:
    • Версия: 7.4 или выше.
  2. Composer:

Установка и запуск

Вариант 1: Глобальная установка (Рекомендуется для игры)

  1. Установите пакет глобально через Composer:

    composer global require openeeer/minesweeper

    Примечание: Убедитесь, что глобальная папка Composer (~/.composer/vendor/bin или ~/.config/composer/vendor/bin) добавлена в вашу системную переменную PATH.

  2. Запустите игру из любого места в терминале:

    minesweeper

Вариант 2: Локальная установка (Для разработки)

  1. Склонируйте репозиторий:
    git clone https://github.com/openeeer/minesweeper
  2. Перейдите в каталог проекта:
    cd minesweeper
  3. Установите зависимости:
    composer install
  4. Запустите игру:
    php bin/minesweeper
    Для вывода справки используйте флаг --help:
    php bin/minesweeper --help

Примечания

  • Игровое поле и подсветка ячеек используют цвета консоли.
  • При открытии мины она подсвечивается оранжевым цветом.
  • Победа отображается зелёным цветом.
  • Можно открывать справку в любой момент во время игры командой h.

Используемые библиотеки

  • Symfony Console — используется для цветного вывода.
  • PHP CLI Tools — используется для консольных утилит.
  • RedBeanPHP — ORM для работы с базой данных SQLite.