kulebyaka1337 / gcd
Console GCD game
Requires
- php: >=8.0
- wp-cli/php-cli-tools: ^0.12.7
Requires (Dev)
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
GCD Console Game (Наибольший общий делитель)
Консольная игра на языке PHP для вычисления наибольшего общего делителя (НОД) двух чисел.
Проект выполнен в рамках лабораторной работы по дисциплине
«Технологии разработки серверных приложений на PHP».
Описание
Игроку предлагаются два случайных целых числа.
Необходимо вычислить и ввести их наибольший общий делитель (НОД).
После ввода ответа программа сообщает:
- правильный ли был ответ;
- правильное значение НОД.
Информация о каждой игре сохраняется в базе данных:
- имя игрока;
- предложенные числа;
- ответ игрока;
- правильный ответ;
- результат игры;
- дата и время.
Требования
- PHP 8.0 или выше
- Composer
Установка
Клонировать репозиторий:
git clone https://github.com/Kulebyaka1337/gcd.git
cd gcd
и установить зависимости:
composer install
Запуск игры
Запуск из корня проекта:
php bin/GCD.php
Запуск глобально (через Packagist)
- Установить пакет глобально:
composer global require kulebyaka1337/gcdПри конфликте зависимостей можно установить разово так:composer global require kulebyaka1337/gcd -W - Узнать путь к глобальному
bin:composer global config bin-dir --absolute - Добавить этот путь в
PATH - Запускать командой:
gcd
Packagist
Пакет: kulebyaka1337/gcd
Ссылка: https://packagist.org/packages/kulebyaka1337/gcd
После запуска следуйте инструкциям в консоли.
Структура проекта
GCD/
├── bin/
│ └── GCD.php # Запускной файл
├── src/
│ ├── Controller.php
│ ├── Game.php
│ ├── View.php
│ └── Database.php
├── vendor/ # Зависимости (не хранится в репозитории)
├── composer.json
├── README.md
└── specification.md
Архитектура
Проект использует упрощённый паттерн MV-:
- Controller — управление логикой игры
- View — вывод информации и ввод данных
- Game — игровая логика (алгоритм НОД)
- Database — работа с базой данных
Используется автозагрузка Composer:
- PSR-4 — для классов
- autoload.files — для функций
Хранение данных
Для хранения результатов используется SQLite. Файл базы данных создаётся автоматически при первом запуске и не добавляется в репозиторий.
Стандарты кодирования
Код соответствует стандартам:
- PSR-1
- PSR-12
Проверка выполняется с помощью PHP_CodeSniffer:
vendor/bin/phpcs --standard=PSR12 src bin
Используемые библиотеки
wp-cli/php-cli-tools— ввод и вывод данных в CLIsquizlabs/php_codesniffer— проверка стандартов кодирования (dev)
Автор
Sergeev S.A.
GitHub: Kulebyaka1337
Лицензия
MIT