Como um palpite é pontuado

Todo palpite no Color Hunch é pontuado pela distância entre a sua cor e a verdadeira — não nos controles que você mexeu, mas em quão diferentes as duas parecem a um olho humano. A medida é CIEDE2000, e esta página explica o que isso significa e por que a distinção importa.

Importa porque a alternativa óbvia erra de um jeito que o jogador sente.

Por que a distância do controle é a medida errada

O jeito fácil de pontuar um palpite é comparar as posições dos controles: o quanto o seu matiz dista do matiz alvo, a sua saturação da dele. É uma linha de código e produz um jogo em que as pessoas param de confiar sem dizer nada.

O motivo: movimentos iguais de um controle não são mudanças iguais para o olho. Dez graus de matiz gritam nos verdes e são quase invisíveis nos azuis profundos. Mexa um pouco no brilho de uma cor clara e todo mundo vê; mexa o mesmo tanto numa escura e quase ninguém vê. Pontuar por distância de controle pune chegar pelo lado errado de um matiz e premia um resultado que claramente parece errado.

O que é de fato uma diferença de cor

A diferença de cor é medida colocando as duas cores num espaço construído para que a distância dentro dele corresponda à diferença percebida, e então medindo essa distância. Esse número se chama ΔE — delta E, onde o E vem de Empfindung, «sensação» em alemão.

A primeira fórmula assim, CIE76, era uma reta entre dois pontos no espaço Lab. Foi um avanço real e tinha fraquezas conhecidas: exagerava diferenças em cores saturadas e as subestimava nos azuis. CIEDE2000 é a correção: acrescenta termos de peso para luminosidade, croma e matiz, mais um termo de interação para a faixa azul, onde a fórmula anterior ia pior.

O que o Color Hunch faz com isso

Quando você envia um palpite, a cor que ajustou e a cor que pertence ali são convertidas de sRGB para Lab, e o CIEDE2000 dá a distância entre elas. Essa distância vira a pontuação da rodada, e as estrelas da fase saem das pontuações de suas rodadas.

O número que aparece é uma porcentagem de proximidade, não o ΔE. Isso é proposital: um ΔE de 4,2 não diz nada sobre o que fazer, enquanto «Proximidade 87» diz a mesma coisa de um jeito comparável com a sua tentativa anterior. O ΔE fica onde deve, dentro da pontuação.

Por que a mesma fórmula roda em todo lugar

O app, o servidor do jogo e este site pontuam com a mesma implementação, conferida contra os mesmos valores de referência. Um palpite que dá 87 no navegador dá 87 no app.

Parece óbvio e é fácil de errar: três bases de código em três linguagens se afastam se nada as segurar juntas. Aqui isso é um teste com pares de entrada fixos e saídas esperadas — se um port diverge da referência, a build quebra em vez de o ranking virar sem sentido em silêncio.

O que os valores de ΔE significam

Como guia aproximado, é assim que uma dada diferença aparece para quem tem visão de cores normal, com luz decente:

ΔEO que você notaria
Abaixo de 1Indistinguível a olho nu. As duas leem como a mesma cor.
1 a 2Visível para olho treinado olhando de perto, em geral lado a lado.
2 a 10Perceptível de relance. A maioria falaria em dois tons da mesma cor.
11 a 49Cores claramente diferentes mas aparentadas — um vermelho e um vermelho meio alaranjado.
50 ou maisCores totalmente diferentes. Ninguém confundiria.

Essas faixas são uma convenção, não uma especificação: é como a área fala desses números, e fontes diferentes traçam os limites em pontos um pouco distintos. Use como jeito de ler uma pontuação, não como padrão.

CIEDE2000 é definida pela CIE (Commission Internationale de l'Éclairage) em CIE 142-2001. A implementação aqui segue Sharma, Wu e Dalal (2005), «The CIEDE2000 Color-Difference Formula», o artigo com o qual a maioria das implementações é conferida e que documenta os dados de teste usados nessa conferência.

Adivinhe a CorComo jogar