A partir de um desafio de um livro de programação há muito tempo, o PNZ é um jogo em que o usuário deve adivinhar três dígitos únicos na ordem correta.
Regras :
- Um número aleatório de 3 dígitos sem dígitos repetidos é gerado. (É isso que o usuário está tentando adivinhar)
- O usuário digita um palpite de 3 dígitos, que deve ser avaliado pelo programa.
- Emita um "P" para cada dígito correto no local correto.
- Emita um "N" para cada dígito correto em um local incorreto.
- Emita um "Z" apenas se nenhum dígito estiver correto.
- Continue aceitando as entradas até que todos os dígitos estejam corretos e no lugar correto e, em seguida, imprima "PPP" seguido do número de palpites necessários em uma nova linha.
Nota :
Um "dígito correto" significa que um dos dígitos no palpite também é um dos dígitos do número aleatório de 3 dígitos.
Um "local correto" significa que é um "dígito correto" E está no mesmo local que o número aleatório de 3 dígitos.
A ordem de saída deve ser todos os "P" primeiro, depois os "N" ou apenas "Z" se nada estiver correto.
Se uma entrada contém dígitos repetidos, "P" tem prioridade sobre a "N" (Exemplo:
Number: 123
Input: 111
Output: P
)(OPCIONAL) Entradas que não tenham exatamente 3 dígitos de comprimento não devem ser avaliadas nem contar para o total de tentativas em execução
Exemplo se os dígitos gerados foram 123
> 147
P
> 152
PN
> 126
PP
> 123
PPP
4
Exemplo se os dígitos gerados foram 047
> 123
Z
> 456
N
> 478
NN
> 947
PP
> 047
PPP
5
Este é o CodeGolf, então o programa mais curto vence!
fonte
Respostas:
JavaScript (ES6) 184
187 195Editar 8 bytes salvos thx @Neil Editar 3 bytes salvos thx @ user81655
(novas linhas contadas como 1 byte)
Teste
fonte
d.splice(v=Math.random()*-~l,1)
economiza 5 ou talvez 8 bytes (ao custo de algum desempenho).PowerShell v2 +,
177231168 bytesEstranhamente, consegui jogar golfe na versão fixa com um comprimento menor do que na versão não fixa ... oO
Muito obrigado a @ edc65 por sua assistência e inspiração!
Explicação:
Exemplo de execução:
fonte
R ,
178166 bytesExperimente online!
O link TIO é apenas para contagem de bytes - tente isso no seu console R! (ou deixe-me saber se existe uma opção alternativa).
Veja o histórico para uma versão menos legível e com menos golfe.
fonte