Jest piątek ... więc chodźmy w golfa! Napisz kod, który określa wynik gracza w dołku w grze w golfa. Kod może być funkcją lub całym programem. Jak sugeruje gatunek, wygrywa najkrótszy kod.
Dane wejściowe (parametry lub standardowe, twój wybór):
- Liczba całkowita reprezentująca wartość dołka, gwarantowana między 3 a 6
- Liczba całkowita reprezentująca wynik golfisty, gwarantowana między 1 a 64
Wyjście (wydruk na standardowe wyjście lub powrót, końcowy znak nowej linii jest dozwolony, ale nie wymagany, twój wybór)
- jeśli wynik wynosi 1, wyślij „Dziura w jednym”
- jeśli wynik == par - 4 i par> 5, wyjście „Condor”
- jeśli wynik == par - 3 i par> 4, wyślij „Albatros”
- jeśli wynik == par - 2 i par> 3, wyjście „Eagle”
- jeśli wynik == par - 1, wyjście „Birdie”
- jeśli wynik == par, wyjście „Par”
- jeśli wynik == par + 1, wyjście „Bogey”
- jeśli wynik == par + 2, wyjście „Podwójny Bogey”
- jeśli wynik == par + 3, wyprowadza „Potrójny Bogey”
- jeśli wynik> par + 3, wyślij „Haha, przegrany”
EDYTUJ Gratulacje dla Dennisa za najkrótszą odpowiedź!
Odpowiedzi:
Galaretka , 61 bajtów
Wypróbuj online!
tło
Używa to statycznej kompresji słownika Jelly. Można znaleźć sprężarkę tutaj . Tą drogą,
i
jak również
i
są równoważne.
Jak to działa
źródło
PHP 5.3+,
Wersja bez powiadomienia,173167166159156151127121 bajtów139137 bajtówUstaw
widok rozstrzelony$s
rdzeń i$p
zmienne ar przedecho
i jesteś wyłączony.Edycje
-6: Nie przechowuje tablicy, po prostu wywołuje ją w razie potrzeby.
-1: Odwracanie trójskładnika.
-7: Najniższa
$s-$p
z$s>1
jest-4
, więcmax()
nie jest konieczna, ponieważ4+$s-$p >= 0
.-3
Array -> explode()
:, dzięki CoolestVeto!-5: Cheaty
dosłowny ciąg dosłownyniezdefiniowana stała plus$r[-1] -> false
, dzięki Ismael Miguel!-24: Przejście z
explode()
funkcji do konfiguracjiprintf
/%s
z pewnymi poprawkami, więcej dzięki Ismael Miguel za zmianę kierunku.-6: Swerve , wróciliśmy do
echo
!źródło
$b="Bogey";
ze$b=Bogey;
aby zaoszczędzić 2 bajtów. Również zamień swój$s-1? ... : ...;
naecho ... ?: ...;
. Oto 151 bajtowa wersja: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);
. Zasadniczo: Usunięto deklarację funkcji, usuniętoexplore
cudzysłowy, użyto tablicy i użyto$argv
. Końcowy kod ma 139 bajtów.05AB1E ,
9190 bajtówKod:
Wyjaśnienie:
Część 1:
Część 2:
Jest to to samo, co
"Condor Albatross Eagle Birdie Par 0Bogey Double0Bogey Triple0Bogey"
użycie kompresji i interpolacji łańcucha. Następnie dzielimy się na spacje, używającð¡
.Część 3:
Odkryłem wiele błędów, wykorzystuje kodowanie CP-1252 .
Wypróbuj online!
źródło
Vitsy, 131 bajtów
Wyjaśnienie:
Działa to poprzez ustalenie, jaki jest wynik w stosunku do wartości nominalnej, a następnie wykonanie różnych linii (i uzyskanie różnych ciągów).
Wypróbuj online!
Tryb pełny (dla kup i chichotów):
źródło
JavaScript (ES6),
125124 bajtówPrzypisz do zmiennej np.
f=p=>s=>
Następnie nazwij ją w ten sposób:f(6)(2)
Najpierw paruj, a potem zdobądź punkty.Można skrócić, łącząc
"Bogey"
s.źródło
",Double ,Triple ".split`,`[k-1]+"Bogey"
gdziek=s-p
.LittleLua - 160 bajtów (niekonkurencyjny)
Jestem względnie pewien, że zrobiłem to dobrze.
Akceptuje dwie liczby całkowite, wartość nominalną i wynik gracza.
Wersja Little Lua, której użyłem, została przesłana po opublikowaniu tego wyzwania, ale nie była później edytowana. Z kodu wynika, że nic nie zostało dodane w celu uproszczenia tego wyzwania
Informacje o LittleLua:
Kiedy będę zadowolony z wbudowanych funkcji i funkcjonalności Little Lua, źródło będzie dostępne wraz z informacją.
LittleLua V0.02
źródło
Mysz-2002 ,
223207 bajtówUsunięcie komentarzy prawdopodobnie pomoże ...
Nie golfowany:
źródło
bash,
150136 bajtówTestowe uruchomienie:
Dzięki Dennis za 14 bajtów!
źródło
Python 2,
186179158 bajtówEDYCJA 1: dodano brakującą skrzynkę „dziura w jednym” ...
EDYCJA 2: Grał w golfa kilka bajtów (dzięki TAC)
źródło
4
ielse
print
i{
, a jeśli użyjesz średnika, aby umieścića=
iprint
na tej samej linii, możesz ogolić bajt białych znakówHaskell - 131 bajtów (liczenie nowego wiersza)
lines
to jedyny sposób, w jaki mogę myśleć o grze w golfa na liście ciągów, które muszą zawierać spacje z dostępem tylko doPrelude
tak ograniczonych dwoma ogranicznikami znaków.Mimo to Haskell zwykle nie jest tak konkurencyjny (przynajmniej w stosunku do języków ogólnych).
źródło
import
wszystko, co chcesz, nie tylko wbudowanePython 2.7, 226 bajtów
Trudno wymyślić krótki kod python, kiedy spóźniasz się na imprezę, najlepiej, jak mogłem wymyślić.
źródło
[print r for r in l if r]
C, 198 bajtów
źródło
Japt, 97 bajtów
Zawiera kilka niezadrukowanych elementów. Przetestuj online!
Jak to działa
źródło
Python 2.7.2, 275 bajtów
Niegolfowane / wyjaśnione:
Moja druga odpowiedź, jak na ironię, oba są w języku Python. Docenione wskazówki golfowe!
źródło
b
.int
.Python 2,
302284 bajtówJeśli dozwolone byłyby białe znaki, byłoby to 282 bajtów:
źródło