ks561/cold-hot

There is no license information available for the latest version (v1.0.1) of this package.

Implementation of the game "Cold-hot"

v1.0.1 2024-10-05 19:06 UTC

This package is auto-updated.

Last update: 2025-06-15 22:26:08 UTC


README

Описание проекта

Проект "Cold-Hot" представляет собой игру, в которой игрок должен найти спрятанный объект, используя подсказки о его местоположении. Игра разработана с использованием языка PHP и базы данных SQLite для хранения результатов и истории игр. Цель игры — найти объект как можно быстрее, следуя указаниям "тепло" и "холодно", которые даются в зависимости от того, насколько близко игрок к объекту.

Цель игры "Cold-Hot" — найти спрятанный объект на игровом поле как можно быстрее, используя подсказки о близости к объекту. Игрок стремится минимизировать количество ходов и время, необходимое для нахождения объекта.

Правила игры

Игровое поле: Представляет собой пространство (например, координатную сетку), где спрятан объект. Движения игрока: Игрок вводит координаты, чтобы угадать, где спрятан объект. Подсказки: После каждой попытки система сообщает игроку, насколько он близок к объекту:

  • "Холодно": Ни одна цифра не отгадана.
  • "Тепло": Одна цифра отгадана, но её позиция неверна.
  • "Горячо": Одна цифра и её позиция отгаданы.

Требования

  • Сохранение данных: Информация о датах и исходах всех партий, а также о всех попытках, сделанных во время игры, должна сохраняться в базе данных.
  • Хранение данных: Для каждой игры в базе данных должна храниться следующая информация:
  • Дата игры
  • Имя игрока
  • Загаданное компьютером число
  • Исход игры (угадал/не угадал)
  • Запись попыток в формате: номер попытки | предложенное число | результат
  • Режимы игры:
  • Новая игра
  • Вывод списка всех сохраненных партий
  • Повтор любой сохраненной партии (воспроизведение всех ходов из этой партии)

Дополнительные возможности

Определение сложности: Возможность выбора уровня сложности, который определяет размер поля и количество попыток. Система рейтинга: Игроки могут соревноваться по количеству успешных игр и времени, затраченному на нахождение объекта. Поддержка нескольких пользователей: Игра хранит данные для разных игроков, позволяя каждому просматривать свои игры и результаты.

Настройка окружения

  1. PHP:

    • Версия: 7.4 или выше.
    • Настройки в php.ini:
      • Включите SQLite (extension=sqlite3).
      • Убедитесь, что настройки отображения ошибок (display_errors) включены в режиме разработки.
  2. SQLite:

    • Версия: 3.x.
    • Проверьте наличие прав записи в каталоге, где находятся файлы баз данных.
  3. Composer:

    • Composer должен быть установлен глобально.
    • Используйте команду composer для управления зависимостями.
    • Для установки Composer следуйте официальной документации.

Игровой процесс

Ввод данных

  1. Координаты ячеек игрового поля:

    • Вводите целые числа для угадывания спрятанного объекта.
    • Каждое число должно быть в пределах от 1 до 100.
    • После ввода, система выдаст вам подсказку (насколько близко или далеко вы от цели).
  2. Параметры перед началом игры:

    • Перед началом партии вам необходимо задать размер игрового поля.
    • Вводите значения, которые определяют размер поля, и система генерирует случайное число, которое необходимо угадать.

Пример игрового процесса:

  1. Запустите игру.
  2. Введите число для угадывания.
  3. Получите подсказку о том, насколько близко или далеко вы находитесь от спрятанного числа.
    • Примеры подсказок:
      • "Очень холодно" (если вы далеко от цели),
      • "Тепло" (если вы ближе к цели),
      • "Горячо" (если вы очень близко).
  4. Продолжайте угадывать до тех пор, пока не найдете точное число.
  5. Система отобразит количество попыток и время, потраченное на игру.

Установка и запуск проекта

  1. Склонируйте репозиторий:

    git clone https://github.com/shuryginaKN/cold-hot.git
  2. Перейдите в каталог проекта:

    cd C:\...\cold-hot
  3. Установите зависимости через Composer:

    composer install
  4. Запуск игры: Выполните команду для запуска игры:

    php bin/cold-hot.php
    • Или если ваш пакет опубликован на Packagist, установите его глобально:
    composer global require ks561/cold-hot
    • И затем выполните команду:
    cold-hot

Сохранение данных в базу данных

Игра сохраняет информацию о каждой партии в базе данных SQLite (файл data/cold-hot.db). Сохраняются следующие данные:

  • Имя игрока
  • Размер поля
  • Спрятанное число
  • Время начала и окончания игры
  • Количество попыток
  • Результат игры (победа или поражение)

Просмотр сохраненных игр

Пользователь сможет совершить следующие действия:

  • Сыграть и сохранить данную игру в базу данных. Реализуется путем ввода команды --new (-n) или по умолчанию.
  • Просмотреть список сохраненных игр, в котором будут указаны дата игры, имя игрока и исход. Реализуется путем ввода команды --list (-l).
  • Повторить ранее сыгранную партию, вводя номер соответствующей игры из списка. Реализуется путем ввода команды --replay id (-r id). Заместо id нужно ввести номер интересующей игры.
  • Получить справку по работе программы. Реализуется путем ввода команды --help (-h).

Воспроизведение сохраненных игр

Вы можете выбрать ID игры из списка и воспроизвести ее. Игра покажет вам все ваши ходы, включая координаты, которые вы вводили, и подсказки, которые вы получали.

Примечания

Ссылки на пакеты