WheelGame
🎡 Колесо Инструментов PRO
Это десктопное приложение-игра, написанное на Python с использованием графической библиотеки PySide6. Игра имитирует вращение двух "колёс фортуны" для определения случайного результата, состоящего из "инструмента" и количества его "применений".
Приложение обладает гибкой системой настроек, позволяющей полностью контролировать игровой баланс, а также включает в себя механики "защиты от неудач" и поощрения за комбинации.
✨ Ключевые особенности
- Персистентные сессии: История вращений сохраняется между запусками программы. Вы можете завершить текущую сессию и начать новую в любой момент.
- Глубокая настройка: Все параметры игры хранятся в файле
и могут быть изменены через встроенный редактор (F12).settings.json - Адаптивный баланс: Система автоматически повышает шансы на хороший результат, если игроку долго не везёт.
- Комбо-награды: Получайте множители к результату за выполнение определённых последовательностей инструментов.
- История и аналитика: Вся история вращений сохраняется в локальную базу данных. Встроенный инструмент (F11) позволяет рассчитать средние значения для каждого инструмента.
🚀 Установка и запуск
-
Установите зависимости:
-
Запустите приложение:
🔧 Настройка (settings.json)
Файл является сердцем приложения и позволяет детально настроить каждый аспект игры. Вы можете редактировать его напрямую или использовать встроенный редактор настроек (нажмите F12 в приложении).
wheel1 (Колесо 1: Выбор инструмента)
Этот раздел определяет вероятность выпадения каждого из четырёх инструментов (, , , ) в каждом из трёх режимов (, , ).
- Ключи:
,green,yellow— игровые режимы.red - Значения: Для каждого инструмента указывается "вес" — целое число. Чем выше вес, тем чаще выпадает инструмент.
- Ограничение: Сумма весов всех инструментов в рамках одного режима должна быть равна 36.
Пример:
wheel2 (Колесо 2: Количество применений)
Этот раздел настраивает, какое количество применений будет выдано для каждого инструмента, выпавшего на Колесе 1.
Структура: .
Для каждого инструмента настраиваются три группы значений: , , .
,low_count,mid_count: "Вес" каждой группы. Определяет, как часто результат будет попадать в низкий, средний или высокий диапазон.high_count- Ограничение: Сумма
должна быть равна 24.low_count + mid_count + high_count
- Ограничение: Сумма
,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: База данных SQLite, хранящая полную историю всех вращений.history.db: Хранит ID текущей активной сессии.session_id.txt