---
feature: "Hry (Milionář)"
description: "Interaktivní herní systém s AI moderátorem – Milionář, Quiz a Adventure režimy"
files:
  - wcs/games/MillionaireGame.py
  - wcs/games/QuizGame.py
  - wcs/games/AdventureGame.py
  - wcs/games/GameManager.py
  - wcs/games/millionaire_prompts.py
  - wcs/games/millionaire_tts.py
  - wcs/games/text_formatter.py
  - wcs/games/DialogShowCorrectAnswer.py
  - wcs/games/DialogWcsTextGame.py
  - wcs/games/MillionaireMyTVAdapter.py
  - wcs/games/moderator_styles/
parent: true
children:
  - "MillionaireGame"
  - "QuizGame"
  - "AdventureGame"
  - "GameManager"
  - "Millionaire Prompts"
  - "Millionaire TTS"
  - "Moderátor Styly"
  - "MyTV Adapter"
  - "Text Game Dialog"
created: "2026-04-04"
updated: "2026-04-04"
status: "complete"
---

# Hry (Milionář)

Interaktivní herní systém využívající AI pro generování obsahu. Hlavní režim je Milionář – hra s 9 koly, rostoucími výhrami (1 000 – 1 000 000 Kč), pomocníky a AI moderátorem. Doplňkové režimy: Quiz (bodovaný kvíz) a Adventure (textová dobrodružná hra). Otázky se generují na základě filmu/seriálu, který uživatel sleduje.

## Soubory

| Soubor | Velikost | Účel |
|--------|----------|------|
| `wcs/games/MillionaireGame.py` | 93 KB | Hlavní herní logika Milionáře |
| `wcs/games/QuizGame.py` | 32 KB | Kvízový herní režim |
| `wcs/games/AdventureGame.py` | 22 KB | Dobrodružný textový režim |
| `wcs/games/GameManager.py` | 13 KB | Delegace na správný herní kontroler |
| `wcs/games/millionaire_prompts.py` | 17 KB | AI prompt building |
| `wcs/games/millionaire_tts.py` | 11 KB | TTS integrace pro hru |
| `wcs/games/text_formatter.py` | 2 KB | Formátování herního textu |
| `wcs/games/DialogShowCorrectAnswer.py` | 2 KB | Dialog pro zobrazení správné odpovědi |
| `wcs/games/DialogWcsTextGame.py` | 39 KB | Fullscreen herní UI dialog |
| `wcs/games/MillionaireMyTVAdapter.py` | 15 KB | Adapter pro MyTV integraci |
| `wcs/games/moderator_styles/` | 5× .md | 5 stylů moderátora |

## Child funkce

### MillionaireGame

- **Co dělá**: Hlavní herní kontroler pro režim Milionář. Řídí 9 kol s rostoucí obtížností, spravuje 3 pomocníky (50:50, telefon příteli, hlasování publika), sleduje výhry a herní stav. Komunikuje s AI pro generování otázek a komentářů moderátora. Podporuje continuous chat – moderátor si pamatuje průběh hry.
- **Klíčové metody**: `start_game()`, `process_answer(answer_index)`, `use_lifeline(type)`, `generate_question()`, `end_game()`
- **Vstupy**: Metadata o filmu/seriálu (title, plot, genre), typ média, tlačítkové akce z UI
- **Výstupy**: Herní stavy (json), UI updaty přes callbacky, TTS audio
- **Závislosti**: [002-ai-system.md](002-ai-system.md) (AIHandler, AIProvider), `millionaire_prompts`, `millionaire_tts`, `moderator_styles`
- **Settings**: `millionaire_difficulty` (0-2), `millionaire_show_correct_answer`, `millionaire_highlight_delay`, `milionar_len_*` (délky herních fází), `milionar_autoplay`, `milionar_autoplay_speed`, `milionar_moderator_style`

### QuizGame

- **Co dělá**: Kvízový herní režim s bodovacím systémem. Na rozdíl od Milionáře nemá rostoucí výhry ale bodování (správné +1, špatné -1). 5 otázek na hru. Jednodušší varianta pro rychlou hru.
- **Klíčové metody**: `start_quiz()`, `process_answer(answer_index)`, `generate_question()`
- **Vstupy**: Metadata o médiu, typ média
- **Výstupy**: Herní stavy, skóre, UI updaty
- **Závislosti**: [002-ai-system.md](002-ai-system.md) (AIHandler, AIProvider)
- **Settings**: sdílí settings s Milionářem

### AdventureGame

- **Co dělá**: Textová dobrodružná hra řízená AI. Uživatel získá příběhový scénář inspirovaný filmem/seriálem a volí z nabízených možností. AI generuje pokračování příběhu na základě voleb.
- **Klíčové metody**: `start_adventure()`, `process_choice(choice_index)`, `generate_scenario()`
- **Vstupy**: Metadata o médiu
- **Výstupy**: Příběhový text, volby, UI updaty
- **Závislosti**: [002-ai-system.md](002-ai-system.md) (AIHandler, AIProvider)
- **Settings**: žádné specifické

### GameManager

- **Co dělá**: Hlavní herní kontroler, který deleguje na specializované kontrolery podle typu hry. Zachovává plnou kompatibilitu s existujícím kódem – UI dialog komunikuje jen s GameManagerem, ne přímo s jednotlivými hrami. Nastavuje UI callbacky a předává konstruktorové parametry.
- **Klíčové metody**: `__init__(title, plot, genre, media_type, ...)`, `select_game_type(type)`, delegace metod na aktivní kontroler
- **Vstupy**: Metadata o médiu, typ hry
- **Výstupy**: Delegace na MillionaireGame, QuizGame nebo AdventureGame
- **Závislosti**: Všechny herní kontrolery
- **Settings**: žádné přímé

### Millionaire Prompts

- **Co dělá**: Stavba AI promptů pro Milionáře. Generuje systémové prompty s rolí moderátora, kontextem média a pravidly hry. Formátuje uživatelské zprávy pro uvítání, otázky a feedback. Respekt uje obtížnost (snadná/střední/těžká) per kolo i globálně.
- **Klíčové metody**: `build_system_prompt()`, `build_question_prompt(round_num)`, `build_feedback_prompt(answer, correct)`
- **Vstupy**: Herní stav, kolo, metadata média, styl moderátora
- **Výstupy**: Strukturované prompt texty pro AI
- **Závislosti**: `moderator_styles`
- **Settings**: `millionaire_difficulty`, `milionar_moderator_style`

### Millionaire TTS

- **Co dělá**: Řídí TTS (text-to-speech) pro herní stavy. Skládá text pro syntézu (uvítání, otázka, možnosti, výsledek), spravuje přehrávání a podporuje ElevenLabs v3 audio tagy. Per-state TTS zapínání/vypínání.
- **Klíčové metody**: `play_tts_for_state(state, text)`, `strip_audio_tags(text)`, `is_elevenlabs_v3_active()`
- **Vstupy**: Herní stav, text k syntéze
- **Výstupy**: Audio přehrávání
- **Závislosti**: [002-ai-system.md](002-ai-system.md) (TTSClient, ElevenLabsTTSClient)
- **Settings**: `milionar_tts_welcome/intro/question/options/result/transition/explanation` (bool per stav), `milionar_tts_provider`, `milionar_tts_voice`, `milionar_tts_model`

### Moderátor Styly

- **Co dělá**: 5 předdefinovaných osobností AI moderátora pro Milionáře. Každý styl je `.md` soubor s instrukcemi pro AI – jak má moderátor mluvit, reagovat a komentovat. Styly: profesionální, přátelský, komediální, dramatický, tajemný.
- **Klíčové metody**: `get_moderator_style(style_id)` v `__init__.py`
- **Vstupy**: ID stylu z nastavení
- **Výstupy**: Prompt text s instrukcemi pro AI
- **Závislosti**: žádné
- **Settings**: `milionar_moderator_style` (0-4)

### MyTV Adapter

- **Co dělá**: Adaptér pro integraci Milionáře do MyTV rozhraní. Umožňuje spustit Milionáře na základě právě sledovaného seriálu přímo z MyTV kanálu.
- **Klíčové metody**: `start_game_from_mytv(channel_data, episode_data)`
- **Vstupy**: Data z MyTV kanálu a aktuální epizody
- **Výstupy**: Spuštění herního dialogu s předvyplněnými metadaty
- **Závislosti**: `GameManager`, `DialogWcsTextGame`, [004-mytv.md](004-mytv.md)
- **Settings**: žádné přímé

### Text Game Dialog

- **Co dělá**: Fullscreen Kodi WindowXML dialog pro herní rozhraní. Zobrazuje otázky, odpovědi (4 tlačítka), sidebar s výherní tabulkou, pomocníky a TTS ovládání. Komunikuje s GameManager přes UI callbacky.
- **Klíčové metody**: `TextGameWindow` třída s `onAction()`, `onClick()`, button mapping
- **Vstupy**: GameManager instance s metadaty
- **Výstupy**: Fullscreen herní UI, interakce s hráčem
- **Závislosti**: `GameManager`, XML skin v `resources/skins/Default/1080i/`
- **Settings**: žádné přímé – řízeno přes GameManager
