kulebyaka1337 / gcd
Console GCD game
Requires
- php: >=8.0
- wp-cli/php-cli-tools: ^0.12.7
Requires (Dev)
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