PHPackages                             openeeer/minesweeper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. openeeer/minesweeper

ActiveLibrary[CLI &amp; Console](/categories/cli)

openeeer/minesweeper
====================

Console Game Minesweeper with SQLite database support

3.3.0(6mo ago)09PHP

Since Sep 28Pushed 6mo agoCompare

[ Source](https://github.com/openeeer/minesweeper)[ Packagist](https://packagist.org/packages/openeeer/minesweeper)[ RSS](/packages/openeeer-minesweeper/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (5)Used By (0)

Проект "Сапер" (Minesweeper)
============================

[](#проект-сапер-minesweeper)

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

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

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

[](#новые-возможности-версии-330)

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

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

[](#новые-возможности-версии-200)

- **Автоматическое сохранение партий** в базу данных 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**:
    - Для установки зависимостей.
    - [Документация Composer](https://getcomposer.org/doc/)

---

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

[](#установка-и-запуск)

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

[](#вариант-1-глобальная-установка-рекомендуется-для-игры)

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

    ```
    composer global require openeeer/minesweeper
    ```

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

    ```
    minesweeper
    ```

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

[](#вариант-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](https://symfony.com/doc/current/components/console.html) — используется для цветного вывода.
- [PHP CLI Tools](https://github.com/php-lo/php-cli-tools) — используется для консольных утилит.
- [RedBeanPHP](https://redbeanphp.com/) — ORM для работы с базой данных SQLite.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance66

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

4

Last Release

204d ago

Major Versions

1.2.0 → 3.0.02025-10-12

### Community

Maintainers

![](https://www.gravatar.com/avatar/412f0c85b14deb524afb6ceabf0c6cb32c1339325a1fab52a0043a450ceaa066?d=identicon)[openeeer](/maintainers/openeeer)

---

Top Contributors

[![openeeer](https://avatars.githubusercontent.com/u/192219872?v=4)](https://github.com/openeeer "openeeer (6 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/openeeer-minesweeper/health.svg)

```
[![Health](https://phpackages.com/badges/openeeer-minesweeper/health.svg)](https://phpackages.com/packages/openeeer-minesweeper)
```

###  Alternatives

[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[crazywhalecc/static-php-cli

Build single static PHP binary, with PHP project together, with popular extensions included.

1.8k13.9k](/packages/crazywhalecc-static-php-cli)[matthiasnoback/symfony-console-form

Use Symfony forms for Console command input

368264.8k8](/packages/matthiasnoback-symfony-console-form)[madewithlove/license-checker

CLI tool to verify allowed licenses for composer dependencies

54449.8k21](/packages/madewithlove-license-checker)[shel/neos-terminal

Neos CMS Ui terminal for running Eel expressions and other commands

1441.3k](/packages/shel-neos-terminal)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
