mr-wo / guess-number
Console Guess-number game (variant 2)
Requires
- php: >=8.0
- ext-pdo: *
- ext-sqlite3: *
- gabordemooij/redbean: ^5.7
- wp-cli/php-cli-tools: ^v0.12.6
Requires (Dev)
README
Описание проекта
Программа для консольной игры "Угадай число" с сохранением данных в базе SQLite через ORM-библиотеку RedBeanPHP.
Правила игры
Компьютер загадывает число в диапазоне от 1 до максимального числа, указанного в настройках. Игрок должен угадать число за несколько попыток (максимальное количество также задаётся в настройках).
После каждой попытки программа сообщает:
- если число игрока больше загаданного — выводит "меньше";
- если число игрока меньше загаданного — выводит "больше".
Сохраняемая информация
Информация о каждой игре сохраняется в базе данных SQLite:
- дата игры;
- имя игрока;
- максимально возможное число;
- загаданное число;
- исход игры (угадал/не угадал);
- список всех попыток (номер, введённое число, ответ компьютера).
Теперь все операции с базой данных выполняются через ORM (RedBeanPHP), SQL-запросы напрямую не используются.
Режимы работы программы
- Новая игра.
- Список сохранённых игр.
- Список игр, в которых игрок победил.
- Список игр, в которых игрок проиграл.
- Статистика по игрокам (кол-во побед и поражений, сортировка по победам).
- Повтор любой сохранённой партии (показ всех ходов).
Требования для запуска проекта
- PHP >= 8.0 (CLI-режим)
- Composer (Глобально установленный)
- SQLite (Для хранения данных проекта)
- RedBeanPHP (устанавливается через Composer)
Установка и запуск
1. Клонировать репозиторий:
git clone https://github.com/Kulebyaka1337/guess-number.git
cd guess-number
2. Установка зависимости:
composer install
3. Сгенерировать автозагрузку:
composer dump-autoload -o
4. 4. Запустить проект:
./bin/guess-number.php
Структура проекта
Task05/ └─ guess-number/ ├─ bin/ │ └─ guess-number # Запускной скрипт ├─ src/ │ ├─ Controller.php # Логика игры │ ├─ Database.php # Работа с базой через ORM │ ├─ Game.php # Логика игрового процесса │ └─ View.php # Отображение и ввод данных ├─ data/ │ └─ games.sqlite # База данных SQLite ├─ vendor/ │ ├─ composer │ └─ autoload.php ├─ .gitignore ├─ composer.json # Настройки Composer ├─ composer.lock └─ README.md # Документация
Автор SergeevSergey (Kulebyaka1337)