Maintainers

Package info

github.com/Nevall-von-Goodem/GCD

Type:project

pkg:composer/nevall-von-goodem/gcd

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.2 2026-02-07 16:15 UTC

This package is not auto-updated.

Last update: 2026-03-22 14:58:12 UTC


README

GCD Game (Наибольший общий делитель)

Консольная игра на PHP: по двум случайным целым числам нужно вычислить НОД и ввести его в терминале.

Проект выполнен в рамках дисциплины
«Технологии разработки серверных приложений на PHP».

Возможности

  • Меню приложения:
    1. Играть
    2. Посмотреть прошлые партии
    3. Выход
  • Во время игры:
    • запрашивается имя игрока;
    • показываются два случайных числа;
    • пользователь вводит НОД;
    • выводится результат (верно/неверно) и правильный ответ.
  • При наличии PDO SQLite результаты сохраняются в базе данных и доступны для просмотра.

Что сохраняется в базе данных

Для каждой партии фиксируется:

  • дата и время;
  • имя игрока;
  • предложенные числа;
  • ответ игрока;
  • верно/неверно.

Требования

  • PHP 8.0+
  • Composer
  • (опционально) расширение pdo_sqlite — для сохранения истории

Установка (локально из репозитория)

composer install
composer dump-autoload -o

Запуск

Из корня проекта:

php bin/GCD

Если файл bin/GCD сделан исполняемым:

./bin/GCD

Установка через Packagist

composer require nevall-von-goodem/gcd

После установки запуск:

./vendor/bin/GCD

Если ставите глобально (composer global require ...), убедись, что директория Composer global bin добавлена в PATH.

Просмотр прошлых партий

Выбери пункт 2 в меню.
Формат вывода: время | игрок | числа | ответ | верно/неверно.

Хранение данных (SQLite)

По умолчанию база создаётся автоматически:

  • Linux/macOS: ~/.gcd/gcd.sqlite
  • Windows: %USERPROFILE%\.gcd\gcd.sqlite

Структура проекта

GCD/
├── bin/
│   └── GCD              # запускной скрипт
├── src/
│   ├── Controller.php   # меню и управление сценарием
│   ├── View.php         # ввод/вывод
│   ├── Model.php        # алгоритм НОД + генерация раундов
│   └── Db.php           # SQLite(Pdo) — сохранение/история
├── composer.json
├── README.md
└── .gitignore

Архитектура

Используется MVС подход:

  • Controller — сценарий (меню, запуск игры, сохранение результатов)
  • View — вывод и ввод в консоли
  • Model — логика (НОД, генерация вопросов)
  • Db — работа с SQLite через PDO

Стандарты кодирования

Код оформлен по:

  • PSR-1
  • PSR-12

Локальная проверка (PHP CodeSniffer):

vendor/bin/phpcs --standard=PSR12 src bin

Используемые зависимости

  • wp-cli/php-cli-tools — удобный ввод/вывод в CLI
  • squizlabs/php_codesniffer — проверка стиля (dev)

Автор

Nevall von Goodem
GitHub: Nevall-von-Goodem