Es viernes ... ¡vamos a jugar al golf! Escriba un código que determine la puntuación del jugador en un hoyo en un juego de golf. El código puede ser una función o un programa completo. Como sugiere el género, gana el código más corto.
Entrada (parámetros o stdin, su elección):
- Un número entero que representa el par del hoyo, garantizado entre 3 y 6
- Un número entero que representa el puntaje del golfista, garantizado entre 1 y 64
Salida (imprimir en stdout o return, nueva línea final permitida pero no requerida, su elección):
- si la puntuación es 1, salida "Hoyo en uno"
- if score == par - 4 y par> 5, salida "Condor"
- if score == par - 3 y par> 4, salida "Albatross"
- if score == par - 2 y par> 3, salida "Eagle"
- if score == par - 1, salida "Birdie"
- si puntaje == par, salida "Par"
- si puntaje == par + 1, salida "Bogey"
- if score == par + 2, salida "Double Bogey"
- si puntaje == par + 3, salida "Triple Bogey"
- si puntuación> par + 3, salida "Jaja, perdedor"
EDIT ¡Felicidades a Dennis por tener la respuesta más corta!
Respuestas:
Jalea , 61 bytes
Pruébalo en línea!
Fondo
Esto usa la compresión estática del diccionario de Jelly. Puedes encontrar un compresor aquí . De esta manera,
y
tanto como
y
son equivalentes
Cómo funciona
fuente
PHP 5.3+,
Versión sin aviso,173167166159156151127121 bytes139137 bytesEstablecer
vista en despiece ordenado$s
núcleo y$p
variables de ar antes de queecho
y esté apagadoEdiciones
-6: No almacena la matriz, solo la llama si es necesario.
-1: Voltear el ternario.
-7: El más bajo
$s-$p
con$s>1
es-4
, por lomax()
que no es necesario desde entonces4+$s-$p >= 0
.-3:
Array -> explode()
gracias CoolestVeto!-5: Cheaty
string literalundefined constant plus$r[-1] -> false
, ¡gracias Ismael Miguel!-24: Pasando de una
explode()
función a unaprintf
/%s
configuración, con algunos ajustes, más gracias a Ismael Miguel por el cambio de dirección.-6: Swerve , estamos de vuelta
echo
otra vez!fuente
$b="Bogey";
con$b=Bogey;
para guardar 2 bytes. Además, reemplace su$s-1? ... : ...;
con unecho ... ?: ...;
. Aquí está la versión larga de 151 bytes:function g($s,$p){$b=Bogey;echo explode("-","Condor-Albatross-Eagle-Birdie-Par-$b-Double $b-Triple $b-Haha you loser")[min(4+$s-$p,8)]?:"Hole in one";}
printf([Condor,Albatross,Eagle,Birdie,Par,'%s','Double %s','Triple %s','Haha you loser'][min(4+$argv[1]-$argv[2],8)]?:'Hole in one',Bogey);
. Básicamente: se eliminó la declaración de función, se eliminaronexplore
, se eliminaron las comillas, se utilizó una matriz y se utilizó$argv
. El código final tiene 139 bytes de longitud.05AB1E ,
9190 bytesCódigo:
Explicación:
Parte 1:
Parte 2:
Esto es lo mismo que
"Condor Albatross Eagle Birdie Par 0Bogey Double0Bogey Triple0Bogey"
usar la compresión de cadenas y la interpolación de cadenas. Luego nos dividimos en espacios, usandoð¡
.Parte 3:
Descubierto muchos errores, utiliza CP-1252 codificación .
Pruébalo en línea!
fuente
Vitsy, 131 bytes
Explicación:
Esto funciona descubriendo cuál es la puntuación en relación con el par, luego ejecuta diferentes líneas (y gana diferentes cadenas) de las mismas.
¡Pruébelo en línea!
Modo detallado (para cacas y risas):
fuente
JavaScript (ES6),
125124 bytesAsigne a una variable
f=p=>s=>
, por ejemplo , luego llámela así:f(6)(2)
primero Par, luego puntuaciónPuede acortarse combinando el
"Bogey"
s.fuente
",Double ,Triple ".split`,`[k-1]+"Bogey"
wherek=s-p
.LittleLua - 160 Bytes (no competitivo)
Estoy relativamente seguro de que hice esto bien.
Acepta dos enteros, par y puntuación del jugador.
La versión de Little Lua que solía hacer esto se cargó después de publicar este desafío, pero no se editó después. Es relativamente obvio por el código que no se ha agregado nada para simplificar este desafío
Información de LittleLua:
Una vez que esté satisfecho con los complementos integrados y la funcionalidad de Little Lua, la fuente estará disponible junto con una página de información.
LittleLua V0.02
fuente
Mouse-2002 ,
223207 bytesEliminar comentarios probablemente ayudaría ...
Sin golf:
fuente
bash,
150136 bytesPrueba de funcionamiento:
¡Gracias a Dennis por 14 bytes!
fuente
Python 2,
186179158 bytesEDITAR 1: se agregó el caso "agujero en uno" que falta ...
EDIT 2: golfed algunos bytes (gracias a tac)
fuente
4
yelse
print
y{
, y si usa un punto y coma para poner ela=
yprint
en la misma línea, puede rasurar un byte de espacio en blancoHaskell - 131 bytes (contando nueva línea)
lines
es la única forma en que puedo pensar en el golf en una lista de cadenas que deben contener espacios con acceso solo paraPrelude
delimitadores de dos caracteres.Aún así, Haskell no suele ser tan competitivo (al menos en comparación con los idiomas generales).
fuente
import
lo que quieras, no solo los incorporadosPython 2.7, 226 bytes
Es difícil encontrar un código corto de Python cuando llegas tarde a la fiesta, lo mejor que se me ocurre.
fuente
[print r for r in l if r]
C, 198 bytes
fuente
Japt, 97 bytes
Contiene un montón de no imprimibles. ¡Pruébelo en línea!
Cómo funciona
fuente
Python 2.7.2, 275 bytes
Ungolfed / explicado:
Mi segunda respuesta, irónicamente, ambos están en Python. Consejos de golf apreciados!
fuente
b
.int
automáticamente.Python 2,
302284 bytesSi se permitiera el espacio en blanco inicial, serían 282 bytes:
fuente