openeeer/minesweeper
最新稳定版本:3.3.0
Composer 安装命令:
composer require openeeer/minesweeper
包简介
Console Game Minesweeper with SQLite database support
README 文档
README
Проект представляет собой консольную игру "Сапёр" (Minesweeper), реализованную на PHP с поддержкой базы данных SQLite. Игрок открывает ячейки на квадратном поле, избегая мин. Цель игры — открыть все безопасные клетки. Если игрок открывает ячейку с миной, игра заканчивается поражением.
Игра поддерживает интерактивный ввод команд для открытия ячеек и установки флагов, а также встроенную справку, которую можно вызвать в любой момент.
Новые возможности версии 3.3.0
- Переход на ORM RedBeanPHP для работы с базой данных
- Упрощенная работа с данными через объектно-реляционное отображение
- Автоматическое создание таблиц при первом запуске
- Улучшенная производительность работы с базой данных
Новые возможности версии 2.0.0
- Автоматическое сохранение партий в базу данных SQLite
- Три игровых режима: новая игра, просмотр списка партий, воспроизведение сохраненных игр
- Полная запись ходов с координатами и результатами
- Воспроизведение партий с пошаговым показом ходов
- История игр с информацией об игроках, датах и результатах
Правила и команды
Правила игры
- Игрок открывает ячейки, избегая мин.
- Если мины нет, ячейка отображает количество соседних заминированных ячеек.
- Если рядом с открытой ячейкой нет мин, автоматически открывается область незаминированных ячеек до тех пор, пока не встретится ячейка с цифрой.
- Игрок может устанавливать флаги на подозрительные ячейки.
Режимы игры
- Новая игра — начать новую партию с вводом имени игрока, размера поля и количества мин
- Список партий — просмотр всех сохраненных в базе данных игр с информацией об игроках, датах и результатах
- Повтор партии — воспроизведение любой сохраненной игры с пошаговым показом ходов
Команды во время игры
o row col— открыть ячейку с координатами(row, col)f row col— установить или убрать флаг на ячейке(row, col)h— показать справку и правила игры
Ограничения
- Размер поля не меньше 2.
- Количество мин от 1 до
size*size - 1. - Координаты ячеек должны находиться в пределах поля.
Работа с базой данных
Игра автоматически сохраняет все партии в базу данных SQLite (bin/minesweeper.db). Для каждой игры сохраняется:
Информация об игре
- Дата и время игры
- Имя игрока
- Размер игрового поля
- Количество мин
- Позиции всех мин на поле
- Результат игры (Победа/Поражение)
Запись ходов
Каждый ход игрока записывается в формате:
- Номер хода
- Координаты ячейки (строка, столбец)
- Результат хода:
мины нет— ячейка открыта успешновзорвался— игрок наступил на минувыиграл— игрок выиграл партию
Воспроизведение партий
При выборе режима "Повтор партии" игра:
- Восстанавливает точное расположение мин
- Пошагово воспроизводит все ходы игрока
- Показывает результат каждого хода
- Отображает финальный результат партии
Требования
- PHP:
- Версия: 7.4 или выше.
- Composer:
- Для установки зависимостей.
- Документация Composer
Установка и запуск
Вариант 1: Глобальная установка (Рекомендуется для игры)
-
Установите пакет глобально через Composer:
composer global require openeeer/minesweeper
Примечание: Убедитесь, что глобальная папка Composer (
~/.composer/vendor/binили~/.config/composer/vendor/bin) добавлена в вашу системную переменнуюPATH. -
Запустите игру из любого места в терминале:
minesweeper
Вариант 2: Локальная установка (Для разработки)
- Склонируйте репозиторий:
git clone https://github.com/openeeer/minesweeper
- Перейдите в каталог проекта:
cd minesweeper - Установите зависимости:
composer install
- Запустите игру:
php bin/minesweeper
Для вывода справки используйте флаг--help:php bin/minesweeper --help
Примечания
- Игровое поле и подсветка ячеек используют цвета консоли.
- При открытии мины она подсвечивается оранжевым цветом.
- Победа отображается зелёным цветом.
- Можно открывать справку в любой момент во время игры командой
h.
Используемые библиотеки
- Symfony Console — используется для цветного вывода.
- PHP CLI Tools — используется для консольных утилит.
- RedBeanPHP — ORM для работы с базой данных SQLite.
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2025-09-28