De un desafío en un libro de programación hace mucho tiempo, PNZ es un juego donde el usuario debe adivinar tres dígitos únicos en el orden correcto.
reglas :
- Se genera un número aleatorio de 3 dígitos sin dígitos repetidos. (Esto es lo que el usuario intenta adivinar)
- El usuario ingresa una conjetura de 3 dígitos, que será evaluada por el programa.
- Imprima una "P" por cada dígito correcto en un lugar correcto.
- Imprima una "N" por cada dígito correcto en un lugar incorrecto.
- Imprima una "Z" solo si no hay dígitos correctos.
- Continúe aceptando entradas hasta que todos los dígitos estén correctos y en el lugar correcto, luego envíe "PPP" seguido del número de conjeturas que tomó en una nueva línea.
Nota :
Un "dígito correcto" significa que uno de los dígitos en la conjetura también es uno de los dígitos en el número aleatorio de 3 dígitos.
Un "lugar correcto" significa que es un "dígito correcto" Y está en el mismo lugar que el número aleatorio de 3 dígitos.
El orden de salida debe ser primero "P", luego "N" o solo "Z" si nada es correcto.
Si una entrada contiene dígitos que se repiten, "P" tiene prioridad sobre la "N" (Ejemplo:
Number: 123
Input: 111
Output: P
)(OPCIONAL) Las entradas que no tienen exactamente 3 dígitos de longitud no deben evaluarse, ni contar para el total acumulado de conjeturas
Ejemplo si los dígitos generados fueron 123
> 147
P
> 152
PN
> 126
PP
> 123
PPP
4
Ejemplo si los dígitos generados fueron 047
> 123
Z
> 456
N
> 478
NN
> 947
PP
> 047
PPP
5
Este es CodeGolf, por lo que gana el programa más corto.
fuente
Respuestas:
JavaScript (ES6) 184
187 195Editar guardado 8 bytes thx @Neil Editar guardado 3 bytes thx @ user81655
(saltos contados como 1 byte)
Prueba
fuente
d.splice(v=Math.random()*-~l,1)
te ahorra 5 o incluso 8 bytes (a costa de un poco de rendimiento).PowerShell v2 +,
177231168 bytesCuriosamente, pude jugar golf a la versión fija para que tuviera una longitud más corta que la versión no fija ... oO
¡Muchas gracias a @ edc65 por su ayuda e inspiración!
Explicación:
Ejemplo de ejecución:
fuente
R ,
178166bytesPruébalo en línea!
El enlace TIO es solo para el recuento de bytes: intente esto en su consola R (o avíseme si hay una opción alternativa).
Vea la historia para una versión menos legible y más legible.
fuente