fortune-tiger-algoritmo

byvaldecir martins da silva

Aplicativo com algoritmo de acerto Fortune tiger

Landing
Landing

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirements Document for fortune-tiger-algoritmo

1. Introduction

fortune-tiger-algoritmo é um aplicativo casual, mobile-first, que entrega ao usuário um número de jogadas (quantidade de rodadas) para usar no Fortune Tiger, mediante escolha entre dois modos: turbo e normal. O produto é uma ferramenta lúdica e tátil — um "brinquedo" de um número e dois modos — e não um preditor de resultados.

Intenção do produto (derivada da fonte):

  • Fornecer um número de jogadas ao usuário.
  • Oferecer dois modos distintos — turbo e normal — que o usuário escolhe.
  • Entregar o número de jogadas correspondente ao modo escolhido, de forma rápida e clara.

Público: jogadores brasileiros de Fortune Tiger ("jogo do tigrinho") que usam o celular e querem uma indicação rápida e divertida de quantas jogadas fazer, sem expectativa de previsão de resultados.

Tom obrigatório: lúdico, otimista, honesto. O aplicativo não prevê nem garante resultados do Fortune Tiger; os resultados do jogo são gerados aleatoriamente pelo servidor do jogo.

Page 1 of 16

2. System Overview

O aplicativo é composto por duas páginas públicas, sem autenticação:

  • Landing — entrada pública que apresenta o aplicativo, explica os modos turbo e normal e declara explicitamente que não há previsão de resultados.
  • Jogadas — ferramenta principal onde o usuário seleciona o modo (turbo ou normal) e recebe o número de jogadas correspondente.

Atores:

  • Jogador de Fortune Tiger (persona humana ativa) — único ator humano.
  • Servidor do jogo Fortune Tiger (ator externo, fora do escopo do produto) — gera os resultados das rodadas de forma aleatória; o aplicativo não interage com ele nem o prevê.

Comportamento aceito:

  • Escolha entre modo turbo e modo normal.
  • Geração e exibição de um número de jogadas correspondente ao modo escolhido.
  • Exibição do histórico das três últimas extrações (apresentação do resultado já produzido, conforme direção visual).

Exclusões estreitas:

  • Não construir previsão ou algoritmo que acerte os resultados das rodadas do Fortune Tiger.
  • Não exibir promessas de ganho garantido, nem imagens/copy de "vitória garantida", rolos de caça-níquel, trevos ou moedas.
  • Não há autenticação, conta de usuário, pagamentos ou integração com o servidor do jogo.
Page 2 of 16

2a. Product Interpretation and Delivery Boundary

O produto é entregue como uma aplicação web própria (custom UI), pública e sem login, acessível por navegador em celular e desktop. Toda a lógica de geração do número de jogadas e da seleção de modo é de responsabilidade do aplicativo. O Fortune Tiger e seu servidor permanecem externos: o aplicativo não acessa, prevê, controla ou influencia os resultados do jogo. A fronteira atual cobre apenas a escolha de modo e a entrega do número de jogadas; qualquer capacidade de previsão de resultados está explicitamente fora do escopo presente e futuro.

2b. Page Content and Component Coverage

Page 3 of 16

Landing

  • Informação/estado: wordmark "FORTUNE TIGER · ALGORITMO", promessa de uma linha, explicação dos dois modos (turbo e normal) e aviso honesto "Sem previsão de resultados — apenas número de jogadas".
  • Ações primárias: iniciar o uso da ferramenta (navegar para Jogadas).
  • Ações de apoio: ler a explicação dos modos e o aviso.
  • Entidades de domínio: Modo (turbo/normal), Número de jogadas (conceito), Aviso de não previsão.
  • Responsabilidades de componentes:
    • Bloco de wordmark com micro-label "ALGORITMO" em lime acima de "FORTUNE TIGER".
    • Cartão "máquina de jogadas" com blob 3D glossy no topo, cápsula de modo (TURBO/NORMAL), botão SORTEAR e cápsula do número.
    • Linha de aviso em lavanda suave sob o cartão.
  • Estados:
    • Carregamento: estrutura estática renderizada imediatamente (sem dependência de dados remotos).
    • Vazio: não aplicável (conteúdo estático).
    • Sucesso: cartão visível com modo padrão selecionado e número ainda não revelado.
    • Erro/recuperação: se a navegação para Jogadas falhar, o usuário permanece na Landing e pode tentar novamente.
Page 4 of 16

Jogadas

  • Informação/estado: modo selecionado (turbo ou normal), número de jogadas revelado, histórico das três últimas extrações.
  • Ações primárias: alternar o modo na cápsula de dois segmentos; acionar SORTEAR para receber o número de jogadas.
  • Ações de apoio: consultar o histórico das três últimas extrações.
  • Entidades de domínio: Modo (turbo/normal), Número de jogadas, Extração (registro de resultado com modo e número), Histórico (últimas três extrações).
  • Responsabilidades de componentes:
    • Cápsula de modo com indicador deslizante (rosa para turbo, lime para normal).
    • Botão SORTEAR em cápsula rosa (recolorido conforme o modo).
    • Cápsula do número com anel lime, número em Comfortaa em tamanho display.
    • Linha de histórico com três chips-cápsula (rosa ou lime) com o número em Comfortaa.
    • Blob 3D glossy no canto do cartão.
  • Estados:
    • Carregamento: botão SORTEAR habilitado; número ainda não revelado.
    • Vazio: nenhuma extração realizada — cápsula do número exibe estado neutro e histórico vazio (sem chips).
    • Sucesso: número revelado com contagem crescente; chip adicionado ao histórico (máximo três).
    • Erro/recuperação: se a geração falhar, o botão SORTEAR permanece acionável e o usuário pode tentar novamente; o histórico anterior é preservado.
Page 5 of 16

3. Functional Requirements

FR-01 — Fornecer número de jogadas

  • Como Jogador de Fortune Tiger, eu devo receber um número de jogadas (quantidade de rodadas) ao usar o aplicativo, para saber quantas rodadas fazer.
  • Proveniência: explicit.
  • Ciclo de vida: iniciador = Jogador; entrada = acionamento de SORTEAR; resultado observável = número exibido na cápsula; falha = geração indisponível, com nova tentativa; continuação = nova extração possível.
  • Aceitação: após acionar SORTEAR, um número inteiro positivo de jogadas é exibido na cápsula do número.

FR-02 — Dois modos: turbo e normal

  • Como Jogador de Fortune Tiger, eu devo poder escolher entre o modo turbo e o modo normal, para obter o número de jogadas correspondente ao modo desejado.
  • Proveniência: explicit.
  • Ciclo de vida: iniciador = Jogador; entrada = toque na cápsula de modo; resultado observável = modo selecionado destacado (rosa para turbo, lime para normal) e botão SORTEAR recolorido; falha = não aplicável (seleção local); continuação = acionar SORTEAR no modo escolhido.
  • Aceitação: a cápsula de modo reflete a escolha com indicador deslizante e o botão SORTEAR assume a cor do modo.
Page 6 of 16

FR-03 — Número de jogadas correspondente ao modo escolhido

  • Como Jogador de Fortune Tiger, eu devo receber o número de jogadas correspondente ao modo que escolhi, para que o resultado reflita minha seleção.
  • Proveniência: explicit.
  • Ciclo de vida: iniciador = Jogador; entrada = SORTEAR com modo selecionado; resultado observável = número exibido associado ao modo; falha = nova tentativa; continuação = alternar modo e sortear novamente.
  • Aceitação: o número exibido é gerado no contexto do modo selecionado e o histórico registra o modo de cada extração.

FR-04 — Histórico das três últimas extrações

  • Como Jogador de Fortune Tiger, eu devo ver as três últimas extrações em chips-cápsula, para acompanhar o que já saiu.
  • Proveniência: required_inference (apresentação do resultado já produzido, conforme direção visual).
  • Ciclo de vida: iniciador = Jogador (ao sortear); resultado observável = chips com número e cor do modo; falha = histórico anterior preservado; continuação = novas extrações empurram as mais antigas.
  • Aceitação: no máximo três chips são exibidos, cada um com o número em Comfortaa e cor sólida rosa ou lime.

FR-05 — Aviso de não previsão

  • Como Jogador de Fortune Tiger, eu devo ver de forma clara que o aplicativo não prevê resultados, para manter expectativa honesta.
  • Proveniência: explicit (restrição dura).
  • Aceitação: a linha "Sem previsão de resultados — apenas número de jogadas" aparece na Landing e o tom do produto não promete ganho.

4. User Personas

Page 7 of 16

Jogador de Fortune Tiger

  • Contexto de produto: jogador brasileiro casual de Fortune Tiger ("jogo do tigrinho"), usa o celular, quer uma indicação rápida e divertida de quantas jogadas fazer.
  • Objetivo principal: obter um número de jogadas de forma rápida e clara, escolhendo entre modo turbo e modo normal, sem expectativa de previsão de resultados.
  • Responsabilidades aceitas distintas: escolher o modo (turbo ou normal); acionar SORTEAR; ler o número revelado; consultar o histórico das três últimas extrações.
  • Entradas/decisões relevantes: seleção de modo; acionamento de SORTEAR.
  • Interações com outros participantes: nenhum outro ator humano; o servidor do jogo é externo e não é acessado pelo aplicativo.
  • Sucesso observável: número de jogadas exibido na cápsula com anel lime, modo refletido na cor do botão e chips de histórico atualizados.
  • Restrição de tom: o produto deve ser lúdico e honesto, nunca um preditor sério.

5. Core User Flows

Page 8 of 16

Fluxo A — Conhecer o aplicativo e iniciar (Jogador de Fortune Tiger)

  1. O Jogador abre a Landing em um navegador de celular ou desktop.
  2. Ele lê o wordmark "FORTUNE TIGER · ALGORITMO", a promessa de uma linha e a explicação dos modos turbo e normal.
  3. Ele lê o aviso "Sem previsão de resultados — apenas número de jogadas".
  4. Ele aciona o início do uso da ferramenta e é levado à página Jogadas.
  5. Continuação: segue para o Fluxo B.

Fluxo B — Escolher modo e receber o número de jogadas (Jogador de Fortune Tiger)

  1. O Jogador está na página Jogadas; o modo padrão está selecionado na cápsula de dois segmentos.
  2. Ele toca no segmento TURBO ou NORMAL; o indicador desliza com mola suave e o botão SORTEAR assume a cor do modo (rosa para turbo, lime para normal).
  3. Ele aciona SORTEAR; o botão comprime a 0.96 e libera.
  4. O número de jogadas é revelado na cápsula com anel lime, contando em Comfortaa — 250 ms no modo turbo com flash lime rápido, 900 ms no modo normal com brilho suave.
  5. Um chip-cápsula com o número e a cor do modo é adicionado ao histórico das três últimas extrações.
  6. Falha/recuperação: se a geração falhar, o botão SORTEAR permanece acionável e o histórico anterior é preservado; o Jogador tenta novamente.
  7. Continuação: o Jogador pode alternar o modo e sortear novamente, ou consultar o histórico.
Page 9 of 16

Fluxo C — Consultar o histórico (Jogador de Fortune Tiger)

  1. O Jogador está na página Jogadas após uma ou mais extrações.
  2. Ele observa a linha de histórico com até três chips-cápsula, cada um com o número em Comfortaa e cor sólida rosa ou lime.
  3. Continuação: ele pode sortear novamente; a extração mais antiga sai quando uma quarta ocorre.
Page 10 of 16

6. Visuals Colors and Theme

Musa: Karim Rashid — minimalismo pop sensual para um contador de sorte, não uma bola de cristal.

Paleta (modo escuro):

  • Fundo: #1B0F2B (ameixa profunda)
  • Superfície: #2A1740 (ameixa mais clara, para cápsula de modo e cartão de resultado)
  • Texto: #FFF4FA (off-white; contraste >12:1 sobre ambos os fundos)
  • Primária: #FF4FA3 (rosa chiclete — wordmark, estado turbo, CTA primário)
  • Acento: #C6FF3D (lime ácido — estado NORMAL, destaque do número revelado, um blob decorativo)
  • Muted: #B79CC9 (lavanda suave — rótulos secundários e aviso; ≥4.5:1)
  • Sem azul; sem gradientes atrás de texto.

Tipografia:

  • Títulos: Comfortaa 700 — wordmark e número gigante revelado; tracking -0.02em; leve overshoot óptico.
  • Corpo: Quicksand 500/600 — line-height 1.5.
  • Escala modular 1.333: display clamp(56px, 12vw, 128px) para o número revelado; h1 clamp(32px, 6vw, 64px); h2 clamp(24px, 4vw, 36px); corpo 17px/1.5; rótulo 12px uppercase tracking 0.14em; sem monoespaçada.

Linguagem de forma: cápsulas e blobs em toda parte — botões pill, toggle de modo em cápsula, cartões arredondados 32–48px com um brilho glossy suave, blobs SVG orgânicos sangrando nas bordas, divisores curvos. Um único blob 3D glossy como objeto dimensional. Cantos duros proibidos exceto filetes divisores.

Page 11 of 16

Layout: mobile-first em coluna única; em 1280px vira split de duas zonas — esquerda 5 colunas (wordmark grande + promessa de uma linha + aviso honesto), direita 7 colunas (cartão "máquina de jogadas": cápsula de modo no topo, botão SORTEAR rosa, cápsula do número com anel lime). Toggle de modo em cápsula de dois segmentos com indicador deslizante. Cartão de resultado repete as três últimas extrações em chips-cápsula.

Imagem: um blob 3D glossy (rosa-a-lime, brilho de estúdio suave) como objeto herói flutuando sobre o fundo ameixa; chips-cápsula vetoriais planos e um pictograma de pata de tigre em traços grossos arredondados para os ícones de modo. Sem fotos de banco, sem rolos de caça-níquel, sem trevos ou clichês de dinheiro, sem hero SaaS de blob gradiente.

7. Signature Design Concept

"A máquina de jogadas" — a primeira tela é um palco ameixa (#1B0F2B) com o wordmark "FORTUNE TIGER · ALGORITMO" em Comfortaa, alinhado à esquerda, em split assimétrico 5/7. O elemento dominante é o cartão "máquina de jogadas" à direita: cápsula #2A1740 com um blob 3D glossy rosa-a-lime empoleirado na borda superior, a cápsula de dois segmentos TURBO/NORMAL no topo, um botão SORTEAR rosa gordo e, abaixo, uma cápsula com anel lime segurando o número em Comfortaa em tamanho display. Uma linha honesta "Sem previsão de resultados — apenas número de jogadas" fica sob o cartão em lavanda suave. Em 375px o cartão empilha sob o wordmark em largura total e o blob encolhe para um adesivo de 96px sobreposto ao canto do cartão. Sem hero centralizado, sem botão azul, sem campo de blobs gradientes.

Page 12 of 16

8. Interaction Model & Motion Direction

Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d

Landing Hero Motion Brief:

  • Sujeito focal: o blob 3D glossy rosa-a-lime empoleirado no canto do cartão "máquina de jogadas".
  • Tese entrada→transformação→resultado: o usuário toca na cápsula de modo → o indicador desliza com mola suave e o botão SORTEAR recolore → o usuário aciona SORTEAR → o número conta em Comfortaa e é revelado na cápsula com anel lime.
  • Vocabulário de movimento: líquido e glossy — mola cubic-bezier(.34,1.56,.64,1) no indicador de modo; compressão a 0.96 e liberação no SORTEAR; contagem crescente com scale-in de 0.8; deriva ambiente lenta de 12s nos blobs de fundo; turbo encurta a contagem para 250ms com flash lime rápido; normal roda 900ms com brilho suave.
  • Primeiro quadro composto: palco ameixa, wordmark à esquerda, cartão à direita com blob no topo, cápsula de modo, botão SORTEAR e cápsula do número ainda não revelada.
  • Estado de movimento reduzido: número estático, indicador de modo instantâneo, sem deriva de blobs.
Page 13 of 16

9. Non-Functional Requirements

  • NFR-01 — Honestidade: o aplicativo não deve afirmar prever ou garantir resultados do Fortune Tiger. (explicit)
  • NFR-02 — Acessibilidade de contraste: texto off-white #FFF4FA sobre ameixa #1B0F2B e #2A1740 com contraste >12:1; lavanda #B79CC9 ≥4.5:1. (explicit, direção visual)
  • NFR-03 — Legibilidade em todos os viewports: headlines, wordmarks, rótulos, números, textos de cartão e controles permanecem inteiros dentro do viewport e do contêiner em 375px, 768px e 1280px, quebrando ou escalando (clamp(...)). (explicit)
  • NFR-04 — Movimento reduzido: com prefers-reduced-motion, todas as animações são desativadas — número estático, indicador de modo instantâneo, sem deriva de blobs. (explicit, direção visual)
  • NFR-05 — Mobile-first: layout em coluna única no mobile, split 5/7 em 1280px. (explicit, direção visual)

10. Tech Stack

  • Frontend: React (aplicação web custom UI, mobile-first).
  • Backend: Python/FastAPI para a geração do número de jogadas e registro do histórico em memória de sessão.
  • Armazenamento: em memória do processo backend (histórico das três últimas extrações por sessão); sem banco de dados persistente necessário ao escopo atual.
  • Deploy: Docker/docker-compose com frontend e backend como serviços; sem Kubernetes (não exigido pelo escopo).
Page 14 of 16

11. Assumptions and Constraints

  • A-01: O número de jogadas é gerado pelo aplicativo no contexto do modo escolhido; não há integração com o servidor do Fortune Tiger. (required_inference)
  • A-02: O histórico das três últimas extrações é mantido em memória de sessão e não persiste entre sessões. (required_inference)
  • A-03: Não há autenticação nem conta de usuário; ambas as páginas são públicas. (explicit, contrato de páginas)
  • C-01: É proibido construir previsão ou algoritmo que acerte os resultados das rodadas do Fortune Tiger; os resultados do jogo são gerados aleatoriamente pelo servidor. (explicit, restrição dura)
  • C-02: É proibido exibir promessas de ganho garantido, rolos de caça-níquel, trevos ou moedas. (explicit, direção visual)
  • C-03: É proibido usar azul/índigo como cor primária, fundo branco ou quase branco, hero SaaS centralizado com blob gradiente, e fontes Inter, Roboto, Poppins, system-ui ou Helvetica para títulos ou corpo. (explicit, direção visual)
Page 15 of 16

12. Glossary

  • Número de jogadas: quantidade de rodadas (inteiro positivo) entregue ao usuário pelo aplicativo.
  • Modo turbo: modo de extração com contagem de 250ms e flash lime rápido.
  • Modo normal: modo de extração com contagem de 900ms e brilho suave.
  • Extração: registro de um resultado gerado, com modo e número, exibido em chip-cápsula.
  • Histórico: conjunto das três últimas extrações exibidas em chips-cápsula.
  • Blob: objeto 3D glossy rosa-a-lime usado como elemento dimensional decorativo.
  • Cápsula: forma pill usada em botões, toggle de modo e chips.
Page 16 of 16
Landing design preview
Landing: Ler wordmark e promessa
Landing: Ler explicação dos modos
Landing: Ler aviso de não previsão
Landing: 1. Iniciar uso da ferramenta
Jogadas: Escolher modo turbo ou normal
Jogadas: 1. Acionar SORTEAR
Jogadas: 2. Ler número revelado
Jogadas: 3. Consultar histórico de extrações
Jogadas: 4. Tentar sortear novamente
Jogadas: 5. Alternar modo e sortear
Landing: 2. Tentar novamente iniciar uso
Landing design preview
Landing: Ler wordmark e promessa
Landing: Ler explicação dos modos
Landing: Ler aviso de não previsão
Landing: 1. Iniciar uso da ferramenta
Jogadas: Escolher modo turbo ou normal
Jogadas: 1. Acionar SORTEAR
Jogadas: 2. Ler número revelado
Jogadas: 3. Consultar histórico de extrações
Jogadas: 4. Tentar sortear novamente
Jogadas: 5. Alternar modo e sortear
Landing: 2. Tentar novamente iniciar uso