Jogo #19

Besouro Turbo

Volatilidade
Média-Alta (Bola Z causa picos)
Grid
RTP

Game Design Document (GDD)

Jogo 19 - Besouro Turbo

Versão: 1.0 Data: 2026-04-03 Mercado: Brasil (Paraná - Lottopar) Referência Zitro: Beetle Bingo (Bingo com Modificadores de Números) Desenvolvedor: Oktop.AI - BuildSense Vertical


1. Resumo Executivo

Besouro Turbo é um jogo de bingo com um modificador animado (Besouro) que marca números grátis nas cartelas. Adicionalmente, oferece a "Bola Z" (Coringa) que permite escolha manual de números. Tema lúdico e descontraído, focado em jogadores ocasionais.

Classificação


2. Identidade Visual e Atmosfera

Tema

Inseto Mágico - "A Sorte do Besouro" - Referência: Folclore brasileiro (insetos de sorte), estética cartoon - Estilo: Cores vibrantes, design amigável, humor visual - Elementos: Flores, folhas, elementos naturais estilizados

Cores Principais

Verde Neon: #00FF00 Azul Sky: #00BFFF Amarelo Brilho: #FFFF00 Marrom Inseto: #8B4513 Vermelho Acento:#FF1493

Elementos Visuais

  1. Besouro: Mascote animado que "voa" sobre as cartelas
  2. Trilha de Movimentação: Deixa brilhos coloridos ao se mover
  3. Efeito de Marcação: Quando o besouro marca um número, há uma animação "cocô dourado" (humor)
  4. Cartelas: Design cartoon com bordas onduladas, números em fonte playful
  5. Bola Z: Aparece como "bola mágica" com efeito de brilho

3. Mecânica Core

3.1 Bingo Base

3.2 Modificador: O Besouro

O Besouro é uma "Bola Grátis Animada":

O servidor decidiu aleatoriamente que alguns números serão marcados GRATUITAMENTE antes do sorteio. O besouro é apenas a representação visual desse evento.

Comportamento: 1. A cada 5-6 bolas sorteadas normalmente, o besouro aparece 2. Voa em padrão aleatório sobre as cartelas 3. "Pousa" em um número e marca-o (efeito visual: "cocô dourado" sai do besouro) 4. Número fica marcado nas 4 cartelas simultaneamente (se existir) 5. Som: Zumbido de inseto ("Bzzzzzzzzzz!") + efeito ding suave

Frequência: - 1-2 besouros por rodada em média - Cada besouro marca 1-2 números

Regra de Ouro: O besouro NÃO pode marcar números que resultem em "over-winning" (prêmio maior que o bilhete permite).

``` Exemplo: - Bilhete: Prêmio = R$ 100 (Linha Dupla) - Besouro marcou 4 números da cartela vencedora - Cartela agora está a 1 número de BINGO (prêmio R$ 1.500) - O besouro NÃO pode marcar esse último número - Besouro desaparece; nenhum número é marcado

Efeito Visual: Besouro "tossiu" ou "espirrou" e voou embora ```


3.3 Bola Z (Coringa - Bola Extra Especial)

Características: - Aparece entre as Bolas Extras (nunca no sorteio inicial) - Permite ao jogador escolher manualmente qual número marcar - Garantia de 100% de acerto

Preço da Bola Z: PreçoBola_Z = PrêmioEmRisco × 0.80 (Aplicar desconto de 20% pois garante acerto)

Validação de Escolha (Critical): O jogo SÓ permite clicar em números que resultem em prêmios autorizados: - Números que causariam "over-win" aparecem desativados (cinza) - Apenas números seguros são clicáveis - Confirmação visual: Número pisca quando selecionável

Exemplo: ``` Estado: Falta 3 números para Bingo Bola Z oferecida: Custo = R$ 40,00 Números da cartela: [05, 12, 33, 18, 41, 27, 09, 15, 50, 62, 74, 88, 11, 39, 77] Números já marcados: [05, 12, 33, 18, 41] (5 números)

Faltam: [27, 09, 15, 50, 62, 74, 88, 11, 39, 77]

Se jogador clica em 27 → Falta 2 para Bingo → PERMITIDO (clicável) Se jogador clica em 09 → Falta 2 para Bingo → PERMITIDO Se bilhete permite completar BINGO para pagar R$ 100 → PERMITIDO Se bilhete é perdedor (R$ 0) → Nenhum número é clicável (cinza total) ```


4. Tabela de Pagamentos

Padrão Paga Prêmio (Base R$10)
Linha Simples Sim R$ 50,00
Coluna Sim R$ 50,00
Diagonal Sim R$ 75,00
Linha Dupla Sim R$ 100,00
Perímetro Sim R$ 150,00
Bingo Completo Sim R$ 500,00

Modificadores: - Cada número do Besouro marca: Sem valor direto (apenas acelera padrão) - Bola Z selecionada corretamente: Prêmio completo se padrão é formado


5. Engenharia de RTP

5.1 Target RTP: 93%

Decomposição: RTP Padrões Base: 82% RTP Besouro Free: 8% RTP Bola Z (Paga): 3% Total: 93%

5.2 Algoritmo de Liberação do Besouro

Se bilhete é VENCEDOR: - Besouro aparece cedo (em 10-15 bolas) - Marca números que aproximam do padrão-alvo - Reduz jogo de sorteio, aumenta sensação de "magia"

Se bilhete é PERDEDOR: - Besouro aparece tarde (em 25-28 bolas) - Marca números "inúteis" para a cartela vencedora - Cria ilusão de quase-vitória (Near Miss)


6. Simulação Financeira (30 Dias)

Perfil

Projeção

``` Rodadas por Sessão: 12 (20 min ÷ ~1.5 min/rodada) Sessões por Mês: 9 Total Rodadas: 108 Aposta Média: R$ 12,00

Coin-In Mensal: R$ 1.296,00

Bolas Extras Estimadas: 15 (14% das rodadas) ├─ Valor Médio: R$ 3,50 ├─ Revenue Extra: R$ 52,50

TOTAL COIN-IN: R$ 1.348,50

GGR @ 93% RTP: R$ 94,40 (Baixíssimo volume) ```

Nota: Este jogo é LOW-VOLUME comparado com Power Bingo. Funciona melhor como "alternativa de diversão" do que gerador de receita primária.


7. Áudio Design

7.1 Voz

Ator: Homem jovem-adulto, tom divertido e casual

Frases: ``` Besouro Aparecimento: ├─ "Olha o besouro!" (alerta) ├─ "ELE MARCOU!" (surpresa) └─ "QUE SORTE!" (entusiasmo)

Bola Z: ├─ "BOLA Z! ESCOLHA SEU NÚMERO!" (convite) ├─ "NÚMERO SELECIONADO!" (confirmação) └─ "ACERTOU!" (vitória)

Padrões: └─ (Mesmo que Power Bingo) ```

7.2 SFX

Zumbido Besouro: "Bzzzzzzzzzz..." (contínuo) Pouso Besouro: "Plop!" (suave) Marcação Besouro: "Ding!" (leve) Bola Z Ativa: "Whoosh!" + shimmer Bola Z Selecionada: "Zap!" (elétrico)

7.3 Música

Gênero: Eletrônico Leve / Synth Pop Tempo: 130 BPM Dinâmica: Ativa quando besouro aparece


8. Conformidade Lottopar

8.1 Categorização Legal

8.2 Mensagens

NA BOLA Z: "Selecione um número. Alguns podem estar desativados se a escolha resultasse em ganho acima do permitido."


9. Especificações Técnicas

9.1 Plataforma

9.2 Animação do Besouro


10. Notas de Implementação

  1. Constraint do Besouro: Não marcar números que causem over-win
  2. Validação da Bola Z: Implementar UI logic que bloqueia números inválidos
  3. State Machine: Adicionar estado "BESOURO_ACTIVE" para evitar conflitos

Versão

v1.0 - 2026-04-03 Autor: BuildSense / Oktop.AI Status: Pronto para Prototipagem

Technical Design Document (TDD)

Jogo 19 - Besouro Turbo

Versão: 1.0 Data: 2026-04-03 Mercado: Brasil (Paraná - Lottopar) Arquitetura: Pool Finito + Modificador Controlado + Z-Ball Validation


1. Visão Geral

Besouro Turbo adiciona uma camada de "Modificadores Aleatórios" ao Bingo clássico. O besouro é apenas renderização visual de números já decididos pelo Pool para serem marcados gratuitamente.


2. Estrutura de Bilhete Estendida

```json { "ticket_id": "TKT-19-20260403-001", "base_prize": 100, "winning_cartela": 2,

"beetles": [ { "number": 15, "trigger_after_ball": 8 }, { "number": 42, "trigger_after_ball": 16 }, { "number": 73, "trigger_after_ball": 25 } ],

"z_ball": { "allowed": true, "cost": 80, "valid_numbers": [5, 12, 33, 27, 41] } } ```


3. Algoritmo de Marcação de Besouro

```csharp public class BeetleModifierSystem { public class BeetleMarking { public int NumberToMark; public int TriggerAfterBallIndex; public bool HasBeenTriggered; }

private List<BeetleMarking> pendingBeetles = new();
private BingoPatternDetector patternDetector;
private decimal ticketWinAmount;

public void InitializeBeetles(
    List<int> beetleNumbers,
    int[] winningCartela)
{
    // Validar que nenhum besouro cria over-win
    for (int i = 0; i < beetleNumbers.Count; i++)
    {
        int number = beetleNumbers[i];
        int triggerBall = (i + 1) * 8; // Distribuído: 8, 16, 24

        // Verificação de Constraint
        if (WouldCauseOverWin(number, winningCartela))
        {
            LogWarning($"Beetle {number} would cause over-win, skipping");
            continue;
        }

        pendingBeetles.Add(new BeetleMarking
        {
            NumberToMark = number,
            TriggerAfterBallIndex = triggerBall,
            HasBeenTriggered = false
        });
    }
}

public void OnBallDrawn(int ballIndex, int ballNumber)
{
    // Verificar se algum besouro deve ser acionado agora
    foreach (var beetle in pendingBeetles.Where(b => !b.HasBeenTriggered))
    {
        if (ballIndex >= beetle.TriggerAfterBallIndex)
        {
            TriggerBeetle(beetle, ballNumber);
            beetle.HasBeenTriggered = true;
        }
    }
}

private void TriggerBeetle(BeetleMarking beetle, int lastBallNumber)
{
    // Marcar o número nos carterias
    MarkNumberOnAllCartelas(beetle.NumberToMark);

    // Animação
    StartCoroutine(AnimateBeetleFlying(
        startPosition: GetRandomPositionOnScreen(),
        targetNumber: beetle.NumberToMark,
        duration: 2.0f));

    // Áudio
    PlayAudio("beetle_buzz.wav");
    PlayAudio("beetle_mark_ding.wav", delay: 1.5f);
}

private bool WouldCauseOverWin(int numberToMark, int[] winningCartela)
{
    // Verificação: Se marcar este número, causaria vitória não-autorizada?

    // 1. Contar quantos números do padrão-alvo já estão marcados
    int alreadyMarked = winningCartela.Count(n => IsMarked(n));

    // 2. Se adicionar este número, completa o padrão?
    bool wouldComplete = (alreadyMarked + 1) == winningCartela.Length;

    // 3. Se completa, o prêmio seria maior que autorizado?
    if (wouldComplete)
    {
        string completedPattern = DetectPattern(winningCartela);
        decimal completedPrize = GetPrizeForPattern(completedPattern);

        if (completedPrize > ticketWinAmount)
        {
            return true; // BLOQUEADO
        }
    }

    return false;
}

private void MarkNumberOnAllCartelas(int number)
{
    for (int cartelaIndex = 0; cartelaIndex < 4; cartelaIndex++)
    {
        for (int position = 0; position < 15; position++)
        {
            if (cartelaNumbers[cartelaIndex][position] == number)
            {
                marked[cartelaIndex][position] = true;
            }
        }
    }
}

} ```


4. Sistema de Bola Z (Z-Ball)

4.1 Validação de Números Selecionáveis

```csharp public class ZBallValidationEngine { private decimal ticketWinAmount; private List validSelectableNumbers = new();

public void InitializeZBall(
    int[] winningCartela,
    string targetPattern,
    decimal maxAllowedWin)
{
    // Determinar quais números são "seguros" de escolher

    foreach (int number in Enumerable.Range(1, 90))
    {
        if (winningCartela.Contains(number))
        {
            // Este número já está marcado, skip
            continue;
        }

        // Simulação: Se jogador escolher este número, qual seria o padrão?
        var simulatedCartela = (int[])winningCartela.Clone();
        Array.Add(ref simulatedCartela, number);

        string resultingPattern = DetectPatternAfterAddingNumber(
            simulatedCartela, number);

        decimal resultingPrize = GetPrizeForPattern(resultingPattern);

        // Só permitir se prêmio <= autorizado
        if (resultingPrize <= maxAllowedWin)
        {
            validSelectableNumbers.Add(number);
        }
    }
}

public List<int> GetValidSelectableNumbers()
{
    return validSelectableNumbers;
}

public bool IsNumberSelectable(int number)
{
    return validSelectableNumbers.Contains(number);
}

public void DisableInvalidNumbers(Canvas uiCanvas)
{
    // Desativar visualmente todos os números não-selecionáveis
    for (int num = 1; num <= 90; num++)
    {
        var button = uiCanvas.Find($"NumberButton_{num}");
        if (button != null)
        {
            button.interactable = IsNumberSelectable(num);

            if (!button.interactable)
            {
                button.GetComponent<Image>().color = Color.gray;
            }
        }
    }
}

} ```

4.2 Preço da Bola Z

```csharp public decimal CalculateZBallPrice(decimal prizeAtRisk) { // Desconto de 20% pois garante 100% de acerto return prizeAtRisk * 0.80m; }

// Exemplos: // Falta 1 para Bingo (R$ 500) → Z-Ball custa R$ 400 // Falta 1 para Linha (R$ 50) → Z-Ball custa R$ 40 ```

4.3 Processamento da Escolha

```csharp public class ZBallSelectionHandler { public async Task ProcessZBallSelection(int selectedNumber) { // 1. Validação (antes de renderizar) if (!validationEngine.IsNumberSelectable(selectedNumber)) { return new SelectionResult { Success = false, Reason = "INVALID_SELECTION" }; }

    // 2. Debitar custo
    await BankingService.DebitZBallCost(zBallPrice);

    // 3. Marcar número
    MarkNumberOnAllCartelas(selectedNumber);

    // 4. Detectar padrão resultante
    var resultPattern = patternDetector.CheckPattern(allDrawnBalls);

    // 5. Renderizar resultado
    if (resultPattern != null)
    {
        PlayWinAnimation(resultPattern);
        return new SelectionResult
        {
            Success = true,
            PatternDetected = resultPattern,
            Prize = GetPrizeForPattern(resultPattern)
        };
    }

    return new SelectionResult
    {
        Success = true,
        PatternDetected = null,
        Prize = 0
    };
}

}

public struct SelectionResult { public bool Success; public string Reason; // Se falhou public BingoPattern PatternDetected; public decimal Prize; } ```


5. Banco de Dados

```sql CREATE TABLE beetle_markings ( marking_id INTEGER PRIMARY KEY AUTOINCREMENT, round_id INTEGER NOT NULL,

number_marked INTEGER NOT NULL,
trigger_ball_index INTEGER,

timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,

FOREIGN KEY (round_id) REFERENCES game_rounds(round_id)

);

CREATE TABLE z_ball_transactions ( z_ball_id INTEGER PRIMARY KEY AUTOINCREMENT, round_id INTEGER NOT NULL,

cost DECIMAL(10, 2),
selected_number INTEGER,

resulting_pattern VARCHAR(50),
prize_amount DECIMAL(10, 2),

timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,

FOREIGN KEY (round_id) REFERENCES game_rounds(round_id)

); ```


6. Testes QA

Teste Entrada Esperado Critério
T001 Besouro acionado Número marcado 100% acurácia
T002 Over-win detectado Besouro bloqueado Sem prêmio extra
T003 Z-Ball seleção inválida UI desativada Nenhuma ação
T004 Z-Ball seleção válida Número marcado + Prêmio Bilhete validado
T005 RTP final 1M rodadas 93% ± 1%

Versão

v1.0 - 2026-04-03 Arquiteto: Backend - Oktop.AI Status: Pronto para Implementação

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, High-speed racing circuit, ultra-detailed environment, immersive 3D background, lush vegetation and natural elements, fast, energetic, mechanical, cinematic lighting with golden hour sun rays, color palette: metallic blue, electric green, neon orange, 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 "Besouro Turbo", ornate and elegant typography, bold letters with gold leaf embossing, luxurious gradient background transitioning from metallic blue to electric green, intricate decorative borders with racing beetle 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, racing beetle creature highly detailed, photorealistic rendering, vibrant colors emphasizing metallic blue, electric green, neon orange, 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: speedlines, ornate design with metallic blue, electric green, neon orange 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: turbo effects, sparkling crystal or gem-like appearance, metallic blue and electric green 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, racing track, animated energy radiating from center, multiple layers of glow effects in neon orange, 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 high-speed imagery, embossed surface detail, reflection and dimension, surrounded by floating particles and light, rich metallic blue, electric green, neon orange 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, metallic blue, electric green, neon orange 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, metallic blue, electric green, neon orange 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 racing beetle, intense fast, energetic, mechanical atmosphere, metallic blue, electric green, neon orange color palette, volumetric lighting effects, large title text with "Besouro Turbo", 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