D'un défi dans un livre de programmation il y a longtemps, PNZ est un jeu où l'utilisateur doit deviner trois chiffres uniques dans le bon ordre.
Règles :
- Un nombre aléatoire à 3 chiffres sans chiffres répétitifs est généré. (C'est ce que l'utilisateur essaie de deviner)
- L'utilisateur entre une estimation de 3 chiffres, qui doit être évaluée par le programme.
- Sortez un "P" pour chaque chiffre correct au bon endroit.
- Sortez un "N" pour chaque chiffre correct dans un endroit incorrect.
- N'émettez un "Z" que si aucun chiffre n'est correct.
- Continuez à accepter les entrées jusqu'à ce que tous les chiffres soient corrects et au bon endroit, puis sortez "PPP" suivi du nombre de suppositions qu'il a fallu sur une nouvelle ligne.
Remarque :
Un «chiffre correct» signifie que l'un des chiffres de la supposition est également l'un des chiffres du nombre aléatoire à 3 chiffres.
Un «endroit correct» signifie qu'il s'agit d'un «chiffre correct» ET qu'il est au même endroit que le nombre aléatoire à 3 chiffres.
L'ordre de sortie doit être tout d'abord "P", puis "N" ou seulement "Z" si rien n'est correct.
Si une entrée contient des chiffres répétés, « P » est prioritaire sur « N » (Exemple:
Number: 123
Input: 111
Output: P
)(FACULTATIF) Les entrées qui ne sont pas exactement de 3 chiffres ne doivent pas être évaluées ni prises en compte dans le total cumulé des suppositions
Exemple si les chiffres générés étaient 123
> 147
P
> 152
PN
> 126
PP
> 123
PPP
4
Exemple si les chiffres générés étaient 047
> 123
Z
> 456
N
> 478
NN
> 947
PP
> 047
PPP
5
C'est CodeGolf, donc le programme le plus court gagne!
la source
Réponses:
JavaScript (ES6) 184
187 195Modifier les octets enregistrés thx @Neil Modifier les octets enregistrés thx @ user81655
(les nouvelles lignes comptent pour 1 octet)
Tester
la source
d.splice(v=Math.random()*-~l,1)
vous économise 5 ou peut-être même 8 octets (au prix de certaines performances).PowerShell v2 +,
177231168 octetsCurieusement, j'ai pu jouer à la version fixe pour être plus courte que la version non fixe ... oO
Un grand merci à @ edc65 pour son aide et son inspiration!
Explication:
Exemple d'exécution:
la source
R ,
178166 octetsEssayez-le en ligne!
Le lien TIO est juste pour le nombre d'octets - essayez ceci dans votre console R! (ou faites-moi savoir s'il existe une autre option).
Consultez l'historique pour une version moins ludique et plus lisible.
la source