WheelGame

0
readme.md

🎡 Колесо Инструментов PRO

Это десктопное приложение-игра, написанное на Python с использованием графической библиотеки PySide6. Игра имитирует вращение двух "колёс фортуны" для определения случайного результата, состоящего из "инструмента" и количества его "применений".

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

✨ Ключевые особенности

  • Персистентные сессии: История вращений сохраняется между запусками программы. Вы можете завершить текущую сессию и начать новую в любой момент.
  • Глубокая настройка: Все параметры игры хранятся в файле
    settings.json
    и могут быть изменены через встроенный редактор (F12).
  • Адаптивный баланс: Система автоматически повышает шансы на хороший результат, если игроку долго не везёт.
  • Комбо-награды: Получайте множители к результату за выполнение определённых последовательностей инструментов.
  • История и аналитика: Вся история вращений сохраняется в локальную базу данных. Встроенный инструмент (F11) позволяет рассчитать средние значения для каждого инструмента.

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

  1. Установите зависимости:

  2. Запустите приложение:

🔧 Настройка (
settings.json
)

Файл

settings.json
является сердцем приложения и позволяет детально настроить каждый аспект игры. Вы можете редактировать его напрямую или использовать встроенный редактор настроек (нажмите F12 в приложении).

wheel1
(Колесо 1: Выбор инструмента)

Этот раздел определяет вероятность выпадения каждого из четырёх инструментов (

I
,
II
,
III
,
IV
) в каждом из трёх режимов (
green
,
yellow
,
red
).

  • Ключи:
    green
    ,
    yellow
    ,
    red
    — игровые режимы.
  • Значения: Для каждого инструмента указывается "вес" — целое число. Чем выше вес, тем чаще выпадает инструмент.
  • Ограничение: Сумма весов всех инструментов в рамках одного режима должна быть равна 36.

Пример:

wheel2
(Колесо 2: Количество применений)

Этот раздел настраивает, какое количество применений будет выдано для каждого инструмента, выпавшего на Колесе 1.

Структура:

режим -> инструмент -> конфигурация
.

Для каждого инструмента настраиваются три группы значений:

low
,
mid
,
high
.

  • low_count
    ,
    mid_count
    ,
    high_count
    : "Вес" каждой группы. Определяет, как часто результат будет попадать в низкий, средний или высокий диапазон.
    • Ограничение: Сумма
      low_count + mid_count + high_count
      должна быть равна 24.
  • low_range
    ,
    mid_range
    ,
    high_range
    : Диапазоны значений (минимальное и максимальное) для каждой группы.

Пример:

combos
(Комбо-награды)

Этот раздел позволяет настроить награды за последовательности выпавших инструментов.

  • enabled
    :
    true
    или
    false
    , включает или выключает систему комбо.
  • combos_list
    : Список объектов, описывающих каждое комбо.
    • sequence
      : Массив строк, задающий последовательность инструментов (например,
      ["IV", "IV"]
      ).
    • multiplier
      : Множитель, который будет применён к количеству применений.
    • description
      : Текстовое описание комбо, которое отображается в логе.

Пример:

adaptive_balance
(Адаптивный баланс)

Эта система защищает игрока от длинной серии неудачных вращений.

  • enabled
    :
    true
    или
    false
    , включает или выключает систему.
  • trigger_threshold
    : Порог срабатывания. Если среднее количество применений за последние
    lookback_count
    вращений падает ниже этого значения, активируется буст.
  • lookback_count
    : Количество последних вращений, которые учитываются для расчёта среднего.
  • boost_config
    : Определяет, как временно изменяются "веса" (
    low_count
    ,
    mid_count
    ,
    high_count
    ) на следующем вращении, чтобы повысить шанс на хороший результат. Значения могут быть отрицательными.

Пример:

⌨️ Горячие клавиши

  • F11: Открыть окно "Расчёт средних значений".
  • F12: Открыть "Редактор настроек".

🗄️ Файлы данных

  • settings.json
    : Основной файл конфигурации.
  • history.db
    : База данных SQLite, хранящая полную историю всех вращений.
  • session_id.txt
    : Хранит ID текущей активной сессии.