Console GCD game

Maintainers

Package info

github.com/Kulebyaka1337/gcd

Type:project

pkg:composer/kulebyaka1337/gcd

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0 2026-02-05 17:59 UTC

This package is auto-updated.

Last update: 2026-03-07 10:33:08 UTC


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)

  1. Установить пакет глобально: composer global require kulebyaka1337/gcd При конфликте зависимостей можно установить разово так: composer global require kulebyaka1337/gcd -W
  2. Узнать путь к глобальному bin: composer global config bin-dir --absolute
  3. Добавить этот путь в PATH
  4. Запускать командой: 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 — ввод и вывод данных в CLI
  • squizlabs/php_codesniffer — проверка стандартов кодирования (dev)

Автор

Sergeev S.A. GitHub: Kulebyaka1337

Лицензия

MIT