Escreva um programa que crie uma caixa de seleção de dois estados com a qual as pessoas possam interagir usando um mouse.
Especificamente, seu programa deve atingir todos os seguintes itens:
Tenha uma região de 8 × 8 pixels (ou maior, se desejado) da tela, que é a área clicável da caixa de seleção. A partir de agora, essa região é chamada simplesmente de caixa de seleção.
Quando o cursor do mouse é movido dentro da caixa de seleção e o botão * padrão do mouse é pressionado, a caixa de seleção deve alternar entre os estados.
Marcado fica desmarcado. Desmarcado fica marcado.A caixa de seleção não deve se mover quando estiver alternada.
No estado marcado, a caixa de seleção pode ser de qualquer cor.
No estado desmarcado, a caixa de seleção pode ter qualquer cor , desde que pelo menos 16 pixels sejam visualmente distintos do estado verificado .
Em uma única instância do programa, todos os estados verificados devem ser visualmente idênticos um ao outro e todos os estados não verificados devem ser visualmente idênticos um ao outro.
Não termine o programa até que ele seja explicitamente finalizado (por exemplo, via botão de saída ou Alt + F4), para que um usuário possa clicar na caixa de seleção o quanto quiser.
* Você pode presumir que o botão padrão do mouse sempre é clique esquerdo, mas também é bom usar o padrão conforme definido pelo software do mouse ou pelo sistema operacional, que pode não ser realmente clique esquerdo dependendo do usuário.
Notas
Não importa o que está fora da região da sua caixa de seleção. Poderia ser apenas a área de trabalho. Pode ser uma parte de um console que muda a cada alternância.
Não importa em que estado sua caixa de seleção começa.
A região da caixa de seleção pode ter dimensões iguais ou superiores a 8 × 8 pixels. Não precisa ser quadrado.
Você pode fazer pequenas concessões para configurações que estão fora de seu controle, como tamanho da fonte do console, zoom do navegador, resolução do monitor, etc. Desde que o seu programa funcione em uma configuração de teste razoável, ele deverá ser válido.
Se o seu programa abrir uma janela, você pode assumir que foi arrastado para um local apropriado na tela, se necessário (por exemplo, canto superior esquerdo).
Você pode usar linguagens de marcação como HTML ou outras linguagens que normalmente não consideramos como linguagens de programação completas.
Sua caixa de seleção deve ser alternada usando o botão padrão do mouse. Tudo bem se também alternar para outras formas de entrada (por exemplo, botão direito do mouse), com exceção do movimento do mouse . ou seja, o estado não deve mudar se o mouse for movido apenas dentro da caixa de seleção.
As capturas de tela da sua caixa de seleção em ação são altamente recomendadas!
Pontuação
O código mais curto em bytes vence.
Exemplo
Um exemplo de HTML canônico em 23 bytes.
<input type="checkbox">
Para mim, no Google Chrome, isso faz uma caixa de seleção 12 × 12 pixels e cerca de 30 pixels mudam claramente entre os estados marcado e não marcado.
Eu concordo que o zoom do navegador esteja em 100%.