承接 openeeer/minesweeper 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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
  • Три игровых режима: новая игра, просмотр списка партий, воспроизведение сохраненных игр
  • Полная запись ходов с координатами и результатами
  • Воспроизведение партий с пошаговым показом ходов
  • История игр с информацией об игроках, датах и результатах

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

Правила игры

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

Режимы игры

  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.

统计信息

  • 总下载量: 9
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2025-09-28