Golf Challenge
Biorąc pod uwagę poniżej ASCII „Zielony”.
| |
| |> |
| | |
| O |
| |
| |
| |
| |
| |
| |
Niech |
oznacz ścianę
Niech |
oznacz połowę masztu flag
Niech >
oznacz flagę na słupie
Niech O
oznacz dziurę
Niech o
oznacz piłkę
Wymiary „Zielonego” to 10x10. Pomiędzy dwiema ścianami jest dziesięć miejsc |
.
Jest także dziesięć spacji, pustych lub nie między górą a dołem zieleni.
Wyzwanie
Wprowadź wartość xiy lub wygeneruj dwie losowe liczby, aby „wystrzelić” piłkę golfową na zielono.
Jeśli wygenerowane x, y nie dotyka dziury ani wyjścia flagi / flagi „Spróbuj ponownie!”
Jeśli wygenerowane x, y trafi do wyjścia „Hole in One!”
jeśli wygenerowane x, y trafi w pole „Lucky Shot!”
jeśli wygenerowane x, y trafi do wyjścia flagi „Zamknij jeden!”
Po strzale wypisz położenie piłki na zielonym polu z o
, zastępując każdą trafioną postać. Wyjmij również odpowiednie powiedzenie powyżej.
Przykłady:
//Hole in one example, the O was replaced with a o
Randomed x = 3
Randomed y = 4
"Hole in One!"
| |
| |> |
| | |
| o |
| |
| |
| |
| |
| |
| |
//Clone example, the top half of the pole was replaced with a o
Randomed x = 3
Randomed y = 2
"Lucky Shot!"
| |
| o> |
| | |
| O |
| |
| |
| |
| |
| |
| |
//Lucky Shot example, the > was replaced with a o
Randomed x = 4
Randomed y = 2
"Close One!"
| |
| |o |
| | |
| O |
| |
| |
| |
| |
| |
| |
//Try Again example, the <space> was replaced with a o
Randomed x = 5
Randomed y = 1
"Try Again!"
| o |
| |> |
| | |
| O |
| |
| |
| |
| |
| |
| |
Miłej zabawy i powodzenia, a ponieważ jest to golf golfowy, wygrywa najkrótszy kod!
Odpowiedzi:
JavaScript (ES6)
210208193184 bajtyPróbny
źródło
Galaretka , 78 bajtów
Zagraj w grę zręcznościową lub Crap-Shoot w TryItOnline!
(Crap-shoot kosztuje więcej bajtów).
W jaki sposób?
źródło
Python 2,
290264262252248245 bajtówNie jest ładny i nie jest krótki, ale jestem zmęczony i jest to
pierwszajedyna odpowiedź na Python. Wpisz strzał w formacie x, y.Edytować
Grałem w golfa 26, zmieniając sposób budowania listy. Nadal nie ma szczęścia z długim stwierdzeniem „jeśli”.
-2, zastępując długi jeśli słownikiem, a krótszy jeśli.
-10 dzięki dzięki @ Noodle9 - tęskniłem :)
-4 - jeszcze raz dziękuję :)
Kolejne 3 zniżki. Dzięki.
Dla każdego, kto interesuje się logiką, niepogolony komentarzami (1316 bajtów, ale nadal łatwo mieści się na dysku 3,5 cala, jeśli ktoś je pamięta):
Zdecydowanie po raz pierwszy dla mnie słownik był najlepszym formatem danych w golfowym wyzwaniu.
źródło
C, 236 bajtów
Nie golfowany:
źródło
Scala, 238 bajtów
Korzystanie z indeksowania zerowego.
Jest to zbyt czytelne :(
Wyjaśnienie:
Użyłem wzoru
1+x+13*y
do obliczenia poprawnego indeksu, ponieważ każdy wiersz ma 13 znaków (2 ramki, nowa linia i 10 spacji) plus przesunięcie o jeden, ponieważ (0,0) powinno być drugim znakiem.źródło
Perl,
225209 bajtówDwa dosłowne znaki nowej linii oszczędzają jeden bajt. Dość standardowy. Drukuje deklarację, a następnie planszę.
źródło
Węgiel drzewny , 99 bajtów
Pobiera wejście oparte na 1, oddzielone spacją, na standardowym wejściu. Większość kodu służy do drukowania (jednego z czterech) komunikatów. Wypróbuj online!
Uwaga: węgiel drzewny jest wciąż w toku. Ten kod działa od bieżącego zatwierdzenia . Jeśli przestanie działać w przyszłości (w szczególności, jeśli łącze TIO nie działa zgodnie z oczekiwaniami), wyślij mi ping, a spróbuję dodać nie konkurującą zaktualizowaną wersję, która działa.
Wyjaśnienie
źródło
Brain-Flak , 1466
1938bajtówWypróbuj online!
Czy wygrałem?
źródło
TI-Basic, 183 bajty
Dzięki Bogu TI-Basic używa tokenów.
|
Nie mogą być wpisane, ale to jest w zestawie znaków.Daj mi znać, jeśli wynik ujęcia absolutnie musi być pisany małymi literami.
Dodam zrzut ekranu przykładowego wyniku programu później.
źródło
Groovy - 235 bajtów
Moja pierwsza próba - Groovy zamknięcie przyjmujące 2 liczby całkowite od 0 do 9 jako współrzędne X i Y dla strzału.
źródło
Dyalog APL , 147 (lub 127) bajtów
Jako argument przyjmuje (y, x).
Od wersji 16.0 możemy prawie zmniejszyć o połowę liczbę bajtów dzięki nowemu
@
operatorowi;@
ustawia lewy operand na pozycjach prawego operandu w prawym argumencie:NewChars @ Positions ⊢ Data
Lekko zmodyfikowany kod, aby był dopuszczalny w TryAPL:
Dziura w jednym , Lucky Shot 1 , Lucky Shot 2 , Close One , Random
źródło
Żółwie , 164 bajty
Po raz kolejny pokazując równowagę Turtlèda między golfistą a gadatliwością w najprostszych rzeczach (takich jak zwiększanie liczby), Turtlèd bije wszystko oprócz golfowych langs.
Wypróbuj online
Zauważ, że jest w połowie zindeksowany, a w połowie zindeksowany; x oznacza jeden indeksowany, y jest zerowy indeksowany; 3,3 to dziura w jednym
źródło
R,
230226 bajtówDzięki @billywob dla -2 bajtów zauważenie
M[a,b]
jest równoważneM[c]
w kilku przypadkach.Irytujące jest to, że dwa
cat
wywołania (!) Nie mogą zostaćcat
połączone w jedno, ponieważfill
argument przekreśla komunikat. Argh!źródło
function(x,y){M=matrix("|",10,10);M[2:9,]=" ";M[34]="0";M[4,2:3]="f";M[15]=">";m=switch(M[y,x],">"="Close One","f"="Lucky Shot","0"="Hole In One","Try again");M[y,x]="o";cat(m,"!\n",sep="");cat(gsub("f","|",M),sep="",fill=10)}
f=
tego rozwiązania. Oddalony.