Jogo #15

Grande Circo

Volatilidade
Grid
RTP

O Grande Circo — Game Design Document (GDD)

Versão: 1.0 Data: 2026-04-03 Mercado: Paraná, Brasil (Regulação Lottopar) Referência Global: Wild West Gold (Pragmatic Play) / Expanding Multipliers


1. Identificação

Campo Valor
Nome O Grande Circo
Tipo Sticky Wilds + Expanding Multipliers
Grid 5x3 (Linhas de Pagamento)
Linhas 20 linhas fixas
RTP 90-97%
Volatilidade Média-Alta
Hit Frequency 25%
Tema Circo tradicional brasileiro com acrobatas

2. Mecânica Core

2.1 Estrutura Base

``` ┌─────┬─────┬─────┬─────┬─────┐ │ 1 │ 2 │ 3 │ 4 │ 5 │ Linha 1 ├─────┼─────┼─────┼─────┼─────┤ │ 6 │ 7 │ 8 │ 9 │ 10 │ Linha 2 ├─────┼─────┼─────┼─────┼─────┤ │ 11 │ 12 │ 13 │ 14 │ 15 │ Linha 3 └─────┴─────┴─────┴─────┴─────┘

20 linhas de pagamento (ziguezague) ```

2.2 Sticky Wilds

O Palhaço (Wild) é especial:

2.3 Expanding Multipliers

Quando um Wild aparece e forma uma vitória:

``` Posição Original: [Palhaço no símbolo 7]

Expansão Vertical: Se há mais símbolos iguais na mesma coluna: - Wild se expande verticalmente - Cobre múltiplas posições - Multiplicador cresce: 1x → 2x → 3x

Exemplo: Antes: [X] [X] [P] P = Palhaço (Wild) [X] [X] [X] X = Outro símbolo

Após Expansão: [X] [X] [P] [X] [X] [P] ← P expandiu! (2x) [X] [X] [X]

Payout = (Base Payout) × (Multiplicador de Expansão) ```


3. Paytable (20 Linhas de Pagamento)

Símbolo 5x 4x 3x Função
Acrobata Top 50x 20x 2x Premium
Leão 25x 10x 1x Alto
Trapezista 15x 6x 0.5x Médio
Palhaço (Wild) Substitui, Expande, Multiplica
Scatter (Tenda) 15x Base 8x Base 3x Base 3+ = Free Spins

4. Bônus: "Circo Mágico"

4.1 Gatilho

4.2 Multiplicador Progressivo do Bônus

Durante Free Spins, a cada vitória que envolva um Wild expandido:

``` Giro 1: Wild aparece, expande 2x Vitória com Wild = payout × 2x Multiplicador Global Bônus = 1x

Giro 2: Wild aparece, expande 3x Vitória com Wild = payout × 3x Multiplicador Global Bônus = 2x Payout Final = (payout × 3x) × 2x = 6x

Giro 3: Wild aparece, expande 2x Multiplicador Global Bônus = 3x Payout Final = (payout × 2x) × 3x = 6x ```


5. Auto-Win Failsafe (Safety Net)

Sistema de segurança regulatória:

Se o bônus completar todos os 10 giros SEM triggetar o multiplicador alto esperado pelo RTP:

```python if final_bonus_payout < MINIMUM_GUARANTEED_PAYOUT: # Auto-win failsafe ativa remaining = MINIMUM_GUARANTEED_PAYOUT - final_bonus_payout

# Giro extra com vitória garantida
trigger_final_win_spin(remaining)

```

Exemplo: - Bônus de 10 giros renderizou apenas R$ 50,00 - RTP esperava R$ 200,00 - Giro extra garante R$ 150,00 faltante

Isso assegura que o RTP seja respeitado mesmo em sequências desfavoráveis.


6. Análise de RTP

RTP Hit Frequency Max Expansion Usado Em
90% 24% 3x Rua
94% 25% 4x Standard
97% 26% 5x+ VIP

7. Simulação Financeira

``` Aposta Média: R$ 2,50 Giros por Hora: 65 Horas: 12 × 30

Coin-In: 65 × 12 × 30 × R$ 2,50 = R$ 585.000 GGR (6%): R$ 35.100 ```


8. Design Temático (Circo Brasileiro)

8.1 Símbolos

8.2 Visuais


9. Conformidade Lottopar


Conclusão

O Grande Circo oferece experiência familiar (Sticky Wilds + Linhas) mas com twist moderno (Expanding Multipliers). Auto-Win Failsafe garante conformidade regulatória mesmo em "bad luck" scenarios.

Data: 2026-04-03 Status: Pronto para Desenvolvimento

O Grande Circo — Technical Design Document (TDD)

Versão: 1.0 Data: 2026-04-03 Arquitetura: Sticky Wilds + Expanding Multipliers Plataforma: Lottopar


1. Sticky Wilds Implementation

1.1 Reel Strip com Wilds

```python REEL_1 = [ "ACROBATA", "LEAO", "TRAPEZISTA", "WILD", "OUTRO", "LEAO", "WILD", "TRAPEZISTA", "ACROBATA", "LEAO", # ... 30 posições total ]

class WildTracking: def init(self): self.sticky_positions = {} # {reel_idx: [positions]}

def apply_sticky_wilds(self, current_reel_config):
    """
    Combina rolos atuais com wilds "pegados" do giro anterior
    """
    combined_config = []

    for reel_idx in range(5):
        reel = current_reel_config[reel_idx]

        # Verificar se há wild pegado neste rolo
        if reel_idx in self.sticky_positions:
            # Inserir wild nas posições pegadas
            for sticky_pos in self.sticky_positions[reel_idx]:
                reel[sticky_pos] = "WILD"

        combined_config.append(reel)

    return combined_config

def track_new_stickies(self, winning_wilds):
    """
    Após um giro vencedor com Wild, marca posições para próximo giro
    """
    for wild_pos in winning_wilds:
        reel_idx, pos = wild_pos
        if reel_idx not in self.sticky_positions:
            self.sticky_positions[reel_idx] = []
        self.sticky_positions[reel_idx].append(pos)

def reset_stickies(self):
    """Reseta wilds pegados entre bônus"""
    self.sticky_positions = {}

```


2. Expanding Multiplier Algorithm

2.1 Detecção de Expansão

```python class ExpandingWildLogic: def init(self): self.expansion_factors = {} # {symbol_id: expansion_count}

def calculate_wild_expansion(self, reel_config):
    """
    Para cada Wild na grade, verificar quantos símbolos iguais
    estão na mesma coluna (para expandir verticalmente)
    """
    expansions = {}

    for reel_idx in range(5):
        reel = reel_config[reel_idx]

        for pos in range(3):  # 3 linhas
            if reel[pos] == "WILD":
                # Encontrar qual símbolo este Wild está substituindo
                # (baseado em linhas de pagamento)
                symbol_beneath = self.get_symbol_beneath_wild(reel_idx, pos, reel_config)

                # Contar quantos deste símbolo existem na mesma linha
                count_in_line = sum(
                    1 for col in range(5)
                    if reel_config[col][pos] == symbol_beneath
                )

                # Expansão = quantidade de símbolos na linha
                if count_in_line >= 2:
                    key = (reel_idx, pos)
                    expansions[key] = count_in_line

    return expansions

def get_symbol_beneath_wild(self, reel_idx, line_idx, reel_config):
    """
    Determina qual símbolo o Wild está substituindo
    Baseado em análise de linha de pagamento
    """
    # Simplificado: assume Wild substitui símbolo mais frequente na linha
    symbols_in_line = [reel_config[col][line_idx] for col in range(5)]
    symbol_counts = {}
    for sym in symbols_in_line:
        if sym != "WILD":
            symbol_counts[sym] = symbol_counts.get(sym, 0) + 1

    return max(symbol_counts, key=symbol_counts.get) if symbol_counts else "OUTRO"

```

2.2 Aplicar Expansão ao Payout

```python def calculate_payout_with_expansion(winning_line, expansions): """ Calcula payout com multiplicador de expansão """ base_payout = PAYTABLE[winning_line['symbol']][winning_line['count']]

# Verificar se há expansão envolvida
expansion_multiplier = 1

for (reel_idx, pos), expansion_count in expansions.items():
    if (reel_idx, pos) in winning_line['positions']:
        expansion_multiplier = max(expansion_multiplier, expansion_count)

return base_payout * expansion_multiplier

```


3. Bonus Multiplier Accumulator

3.1 Bonus com Multiplicador Progressivo

```python class BonusSession: def init(self, num_spins=10): self.num_spins = num_spins self.spins_completed = 0 self.accumulated_multiplier = 1 self.total_win = 0

def process_bonus_spin(self, spin_result, expansions):
    """
    Processa um giro do bônus
    """
    self.spins_completed += 1

    # Calcular payout deste giro (com expansão)
    spin_payout = 0
    for winning_line in spin_result['winning_lines']:
        spin_payout += calculate_payout_with_expansion(winning_line, expansions)

    # Aplicar multiplicador acumulado
    final_spin_payout = spin_payout * self.accumulated_multiplier

    # Se há Wild expandido, aumentar multiplicador para próximo giro
    if any(expansions.values()):
        max_expansion = max(expansions.values())
        self.accumulated_multiplier = max_expansion

    self.total_win += final_spin_payout

    return {
        "spin_num": self.spins_completed,
        "base_payout": spin_payout,
        "accumulated_multiplier": self.accumulated_multiplier,
        "final_payout": final_spin_payout
    }

def is_bonus_complete(self):
    return self.spins_completed >= self.num_spins

```


4. Auto-Win Failsafe

4.1 Implementação da Garantia

```python def apply_auto_win_failsafe(final_bonus_win, target_rtp, base_bet): """ Se bônus não atingiu expected payout, garante mínimo """

# Calcular expected payout baseado em RTP
expected_payout = base_bet * target_rtp * 10  # 10 giros base aproximadamente

if final_bonus_win < expected_payout * 0.8:  # Se ficou 20% abaixo
    # Trigger failsafe
    shortfall = expected_payout * 0.8 - final_bonus_win

    # Criar giro extra garantido
    auto_win_spin = {
        "type": "auto_win_failsafe",
        "guaranteed_payout": shortfall,
        "reason": "RTP guarantee"
    }

    return final_bonus_win + shortfall, auto_win_spin

return final_bonus_win, None

```


5. Line Pay Calculation (20 Linhas)

5.1 Mapeamento de Linhas

```python PAYLINES = [ # Diagonal up [(0, 2), (1, 1), (2, 0), (3, 1), (4, 2)], # Linha 1 # Top [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0)], # Linha 2 # Bottom [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2)], # Linha 3 # Zigzag patterns [(0, 0), (1, 1), (2, 0), (3, 1), (4, 0)], # Linha 4 [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2)], # Linha 5 # ... mais 15 linhas ]

def check_winning_lines(reel_config): """ Verifica qual linha paga """ winning_lines = []

for line_idx, payline in enumerate(PAYLINES):
    symbols_on_line = [
        reel_config[reel_idx][pos]
        for reel_idx, pos in payline
    ]

    # Verificar se é uma vitória (3+ símbolos iguais da esquerda)
    winning_symbol = None
    winning_count = 0

    for i, symbol in enumerate(symbols_on_line):
        if symbol in PAYABLE_SYMBOLS or symbol == "WILD":
            if winning_symbol is None:
                winning_symbol = symbol
            elif symbol == winning_symbol or symbol == "WILD" or winning_symbol == "WILD":
                winning_count += 1
            else:
                break  # Vitória encerrada

    if winning_count >= 2:  # 3+ símbolos (count começa em 0)
        winning_lines.append({
            "line": line_idx,
            "symbol": winning_symbol,
            "count": winning_count + 1,
            "positions": payline
        })

return winning_lines

```


6. JSON Payload

6.1 Spin Response

json { "spin_result": { "reel_config": [ ["ACROBATA", "LEAO", "WILD"], ["LEAO", "TRAPEZISTA", "ACROBATA"], ["WILD", "LEAO", "TRAPEZISTA"], ["ACROBATA", "WILD", "LEAO"], ["LEAO", "ACROBATA", "TRAPEZISTA"] ], "winning_lines": [ { "line": 0, "symbol": "LEAO", "count": 4, "payout": 40 } ], "expansions": { "[0, 2]": 2, // Wild em (0,2) expande para 2x "[2, 0]": 2 // Wild em (2,0) expande para 2x }, "expansion_adjusted_payout": 80, "sticky_wilds_for_next_spin": [[0, 2], [2, 0]], "bonus_triggered": false } }

6.2 Bonus Payload

json { "bonus_session": { "num_spins": 10, "spins": [ { "spin_num": 1, "base_payout": 50, "expansions": {"[1, 1]": 3}, "accumulated_multiplier": 1, "final_payout": 50 }, { "spin_num": 2, "base_payout": 25, "expansions": {}, "accumulated_multiplier": 3, "final_payout": 75 }, ... ], "total_bonus_win": 500, "failsafe_applied": false } }


7. RTP Validation

```python def validate_rtp_with_stickies(num_sessions=10000): """ Testa RTP considerando sticky wilds """ total_in = 0 total_out = 0

for _ in range(num_sessions):
    wager = 10.0
    spin_result = run_spin_with_sticky_tracking()

    total_in += wager
    total_out += spin_result.get('payout', 0)

observed_rtp = total_out / total_in
expected_rtp = 0.94

assert abs(observed_rtp - expected_rtp) < 0.02
print(f"✓ RTP with Stickies: {observed_rtp:.4f}")

```


8. Hardware Requirements


9. SAS 6.02 Integration

Events: - Game Round Start - Sticky Wild Tracked - Line Win - Bonus Start - Bonus Spin - Auto-Win Failsafe - Final Payout


Conclusão

O Grande Circo combina mecânicas familiares (20 linhas, Sticky Wilds) com twist moderno (Expanding Multipliers). Auto-Win Failsafe garante conformidade RTP mesmo em cenários edge-case.

Data: 2026-04-03 Status: Pronto para Desenvolvimento

Prompts de Geração de Arte IA

Clique em qualquer prompt para copiar. Os prompts abaixo são otimizados para Midjourney v6, DALL-E 3, e Stable Diffusion.

🎨 Cenário Principal
Proporção: 16:9
Professional slot game art, Big top circus tent, ultra-detailed environment, immersive 3D background, lush vegetation and natural elements, entertaining, whimsical, magical, cinematic lighting with golden hour sun rays, color palette: circus red, gold, white, depth of field creating focal point on game area, hyper-realistic textures, trending on ArtStation, Unreal Engine 5 quality, vibrant and saturated colors, --ar 21:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🏷️ Logo/Título
Proporção: 16:9
Logo design for "Grande Circo", ornate and elegant typography, bold letters with gold leaf embossing, luxurious gradient background transitioning from circus red to gold, intricate decorative borders with circus tent motifs, 3D dimensional effect with shadow depth, cinematic lighting, professional branding, high contrast, designed for high-visibility gaming cabinet, --ar 16:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 1
Proporção: 1:1
Premium game symbol for slot machine, circus tent creature highly detailed, photorealistic rendering, vibrant colors emphasizing circus red, gold, white, centered composition with transparent background, dramatic lighting with golden highlights, intricate feather/fur textures, 3D depth, game-ready asset, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 2
Proporção: 1:1
Game symbol: acrobats, ornate design with circus red, gold, white color scheme, highly detailed intricate patterns, luxurious appearance, centered on clean background, dimensional shadow effect, professional slot machine graphics, golden accents, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 3
Proporção: 1:1
Collectible symbol: clowns, sparkling crystal or gem-like appearance, circus red and gold dominant colors, glowing effect with light rays, highly detailed with reflective surfaces, centered composition, professional gaming asset quality, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 4
Proporção: 1:1
Bonus trigger symbol, performers, animated energy radiating from center, multiple layers of glow effects in white, ornate frame decoration, detailed fine art illustration, professional casino game quality, shimmering and ethereal, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 5
Proporção: 1:1
Premium scatter symbol, luxurious golden coin with spotlights imagery, embossed surface detail, reflection and dimension, surrounded by floating particles and light, rich circus red, gold, white palette, high-end game graphics, professional quality, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎁 Tela de Bônus
Proporção: 16:9
Bonus round screen for slot game, explosive energy and celebration theme, multiple layers of special effects, circus red, gold, white dominant colors, dramatic lighting with particle effects, progress bars and multiplier counters visible, luxurious animation frames, cinematic composition, game-ready quality, professional casino graphics, --ar 16:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🖥️ Mockup UI
Proporção: 16:9
Complete game UI mockup for slot machine cabinet, professional layout with reels center stage, circus red, gold, white theme throughout, game statistics visible (RTP, lines, bet), ornate frame decoration, luxury gaming interface, clear typography, buttons and controls well-positioned, premium aesthetic, high contrast readability, arcade cabinet quality, --ar 16:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
Tela de Carregamento
Proporção: 21:9
Splash art loading screen for slot game, dramatic cinematic scene featuring circus tent, intense entertaining, whimsical, magical atmosphere, circus red, gold, white color palette, volumetric lighting effects, large title text with "Grande Circo", game studio logo placement, trending on gaming platforms, highly detailed and professionally rendered, advertisement-quality, --ar 21:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado