Por trás do jogo

A cor das regiões é estrutural no Meowdoku, não decorativa

Cada célula do Meowdoku tem uma cor sólida e nada mais marca onde termina uma região. Duas cores vizinhas mal escolhidas tornam o tabuleiro ilegível antes do primeiro gato. O jogo já trata a paleta como parte funcional; aqui medimos se ela resiste a uma deficiência de visão de cores.

O que realmente marca uma região

O componente não desenha uma fronteira especial entre regiões: todas as células recebem a mesma linha fina de 1 px. Só a cor de preenchimento muda; não há contorno, ícone ou textura. Assim, a cor é o único registro da região de cada célula.

Por que a paleta sustenta a estrutura

Duas regiões vizinhas com cores parecidas passam a parecer uma única mancha. O próprio módulo alerta que uma atribuição ingênua aproxima vermelho de rosa ou laranja de amarelo, obrigando o jogador a encarar justamente quando reconhecer a região é a base de toda dedução.

O algoritmo: coloração de grafos de verdade

`assignRegionColors` monta um grafo de adjacência por lados compartilhados, não diagonais, começa pelas regiões com mais vizinhos e escolhe a posição livre mais distante deles num anel de 12 cores. Regiões são vértices, lados são restrições e o anel aproxima a semelhança visual dos matizes.

Quanto espaço sobra na paleta

A paleta tem 12 posições; o número de regiões é igual ao tamanho do tabuleiro e chega no máximo a 10.

Regiões usadas diante das 12 posições da paleta.
TabuleiroRegiões (= tamanho)Posições livres
Fácil 5×557
Normal 7×775
Difícil 9×993
Extremo 10×10102

Mesmo no Extremo, duas posições não são usadas; o fallback por falta de cores nunca dispara num tabuleiro real.

O ganho sob visão comum

Medimos a separação com CIE Lab ΔE: abaixo de 10 as cores parecem semelhantes de relance; acima de 30, claramente distintas. Em 300 tabuleiros novos por dificuldade, comparamos o par vizinho mais próximo à atribuição que ignora adjacência.

Média do par de regiões vizinhas mais próximo por tabuleiro (ΔE, tema claro, visão comum), 300 por dificuldade.
TabuleiroassignRegionColorsSem considerar adjacência
Fácil 5×536.028.0
Normal 7×734.328.6
Difícil 9×933.528.1
Extremo 10×1032.527.5

A coloração acrescenta cerca de 20% de separação em todas as dificuldades. A paleta já evita colisões graves; o algoritmo remove a sorte e transforma “provavelmente bom” em garantia.

O que muda na deficiência vermelho-verde

Protanopia e deuteranopia comprimem o eixo entre vermelho, laranja, verde-amarelado e verde e, juntas, afetam cerca de 1 em 12 homens. Aplicamos uma simulação dicromática linear RGB e medimos ΔE novamente. É um limite de severidade total, não a visão exata de cada jogador.

O resultado medido: colapso em quase todo tabuleiro

Repetimos os mesmos 300 tabuleiros por dificuldade e buscamos o par vizinho mais próximo sob as duas simulações.

ΔE médio do par vizinho mais próximo sob visão comum e protanopia/deuteranopia simuladas.
TabuleiroVisão comumProtanopiaDeuteranopiaTabuleiros com par abaixo de ΔE 12
Fácil 5×536.010.118.597%
Normal 7×734.39.016.597%
Difícil 9×933.58.415.399%
Extremo 10×1032.58.113.595%

ΔE 12 é um limiar prático, não clínico. Na protanopia a média cai para um dígito e na deuteranopia diminui mais da metade; 95–99% dos 1.200 tabuleiros têm pelo menos um par abaixo dele.

Quase sempre é o mesmo par

O colapso é dominado por vermelho ao lado de verde-amarelado, presente em 97–99% dos tabuleiros afetados. O par cai de ΔE 54.0 na visão comum para 9.5 na protanopia, redução de 82%. Fica a três posições no anel, distância tida como segura, mas na mesma faixa de luminosidade; roxo e azul-petróleo também caem de 74.0 para 8.2.

O que ajuda hoje

Hoje não há modo daltônico nem borda de região. Filtros de cor do sistema no macOS, Windows, iOS e Android podem separar novamente esses matizes; ampliar não ajuda porque o problema é de cor. Uma futura paleta deve revisar primeiro os pares separados por três posições.

Como medimos

Os tabuleiros vêm de `generatePuzzleSync` e as cores de `assignRegionColors` e `regionAdjacency`. Usamos CIE76 ΔE e uma matriz dicromática linear RGB da família Viénot/Brettel. Os testes recalculam tudo a partir dos módulos reais para impedir números desatualizados.

Observe o próximo tabuleiro assim

Abra um tabuleiro e encontre as duas regiões vizinhas com cores mais próximas. Ali está a margem de segurança da paleta e, se disponível, um bom teste para o filtro vermelho-verde do sistema.

Os tabuleiros são gerados no seu navegador. Nada do que você joga é enviado para qualquer lugar.