markause / guess-number
Implementation of the game "Guess-number"
Installs: 27
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- gabordemooij/redbean: ^5.7
- wp-cli/php-cli-tools: ^0.12.0
README
Описание проекта
Проект включает разработку игры "Угадай число" (Guess Number) с использованием реляционной базы данных для сохранения результатов игр. Игра реализована на языке PHP с использованием базы данных SQLite. Пользователям предоставляется возможность просматривать историю игр и воспроизводить ранее сыгранные партии.
Цель игры - угадать загаданное компьютером число в заданном диапазоне. Игрок вводит число, и система сообщает, больше или меньше это число, чем загаданное. Игрок продолжает попытки угадывания, пока не угадает правильное число.
Правила игры
- Игрок вводит диапазон чисел, в котором будет происходить угадывание.
- Компьютер загадывает случайное число в этом диапазоне.
- Игрок вводит свое число и получает подсказку, больше или меньше оно загаданного.
- Игрок продолжает угадывать, пока не назовет правильное число.
- Количество попыток фиксируется и сохраняется в базе данных.
Требования
- Выбор диапазона чисел: Вводится пользователем перед началом игры.
- Сохранение данных: Вся информация об играх и попытках угадывания сохраняется в базе данных SQLite.
- Хранение данных:
- Дата игры
- Имя игрока
- Диапазон чисел
- Загаданное число
- Исход игры
- Запись попыток в формате: номер попытки | загаданное число | результат (больше/меньше/угадано)
- Режимы игры:
- Новая игра
- Просмотр списка сохраненных игр
- Повтор сохраненной партии (воспроизведение попыток)
Игровой процесс
Начало игры
Перед началом партии пользователю будет предложено ввести следующие параметры:
- Максимальное число: Укажите максимальное число из отрезка.
- Количество попыток: Укажите количество попыток для угадываения.
Игровые действия
- Проигрыш: Если не угадал число за отведенное количество попыток, игра заканчивается.
- Выигрыш: Игра завершается, когда игрок угадал число.
Просмотр сохраненных игр
Пользователь сможет совершить следующие действия:
- Сыграть и сохранить данную игру в базу данных. Реализуется путем ввода команды --new (-n) или по умолчанию.
- Просмотреть список сохраненных игр, в котором будут указаны дата игры, имя игрока и исход. Реализуется путем ввода команды --list (-l).
- Просмотреть список сохраненных игр, в которых игроки победили. Реализуется путем ввода команды --list win (-l win).
- Просмотреть список сохраненных игр, в которых игроки проиграли. Реализуется путем ввода команды --list loose (-l loose).
- Просмотреть статистику по сохраненным играм. Реализуется путем ввода команды --top.
- Повторить ранее сыгранную партию, вводя номер соответствующей игры из списка. Реализуется путем ввода команды --replay id (-r id). Заместо id нужно ввести номер интересующей игры.
- Получить справку по работе программы. Реализуется путем ввода команды --help (-h).
Окружение и требования для запуска
-
PHP:
- Версия: 7.4 или выше.
- Настройки в
php.ini
:- Включите SQLite (
extension=sqlite3
). - Убедитесь, что настройки отображения ошибок (
display_errors
) включены в режиме разработки.
- Включите SQLite (
-
SQLite:
- Версия: 3.x.
- Проверьте наличие прав записи в каталоге, где находятся файлы баз данных.
-
Composer:
- Composer должен быть установлен глобально.
- Используйте команду
composer
для управления зависимостями. - Для установки Composer следуйте официальной документации.
Установка и запуск проекта
-
Склонируйте репозиторий:
git clone https://github.com/KrasulinN/guess-number
-
Перейдите в каталог проекта:
cd D:\Сервера\402_DBTech_Krasulin_NI\Task05\guess-number
-
Установите зависимости через Composer:
composer install
-
Запуск игры: Выполните команду для запуска игры:
php bin/guess-number.php
- Или если ваш пакет опубликован на Packagist, установите его глобально:
composer global require markause/guess-number
- И затем выполните команду:
guess-number
Примечания
-
Проверьте права на запись в каталог с базой данных SQLite.
-
Дополнительную информацию можно найти в документации PHP, SQLite и Composer: