Z wyzwania w książce programowej dawno temu, PNZ to gra, w której użytkownik musi odgadnąć trzy unikalne cyfry we właściwej kolejności.
Zasady :
- Generowany jest losowy 3-cyfrowy numer bez powtarzających się cyfr. (Właśnie to użytkownik próbuje odgadnąć)
- Użytkownik wprowadza 3 cyfry, które program ma ocenić.
- Wypisz „P” dla każdej poprawnej cyfry we właściwym miejscu.
- Podaj „N” dla każdej poprawnej cyfry w niewłaściwym miejscu.
- Wypisz „Z” tylko wtedy, gdy cyfry nie są poprawne.
- Kontynuuj przyjmowanie danych wejściowych, dopóki wszystkie cyfry nie będą poprawne i we właściwym miejscu, a następnie wyślij „PPP”, a następnie liczbę zgadnięć, które zajęło w nowym wierszu.
Uwaga :
„Prawidłowa cyfra” oznacza, że jedna z cyfr w domysłach jest również jedną z cyfr w losowej 3-cyfrowej liczbie.
„Prawidłowe miejsce” oznacza, że jest to „Prawidłowa cyfra” ORAZ znajduje się w tym samym miejscu, co 3-cyfrowa liczba losowa.
Kolejność wypisywania powinna być pierwsza „P”, następnie „N” lub tylko „Z”, jeśli nic nie jest poprawne.
Jeżeli sygnał wejściowy zawiera powtarzające się cyfry „P” ma wyższy priorytet niż „n” (na przykład:
Number: 123
Input: 111
Output: P
)(OPCJONALNIE) Dane wejściowe, które nie mają dokładnie 3 cyfr długości, nie powinny być oceniane, ani liczyć się do bieżącej sumy domysłów
Przykład, jeśli wygenerowane cyfry miały wartość 123
> 147
P
> 152
PN
> 126
PP
> 123
PPP
4
Przykład, jeśli wygenerowane cyfry miały wartość 047
> 123
Z
> 456
N
> 478
NN
> 947
PP
> 047
PPP
5
To jest CodeGolf, więc wygrywa najkrótszy program!
źródło
Odpowiedzi:
JavaScript (ES6) 184
187 195Edytuj zapisane 8 bajtów dzięki @Neil Edytuj zapisane 3 bajty dzięki @ użytkownik 81655
(nowe linie liczone jako 1 bajt)
Test
źródło
d.splice(v=Math.random()*-~l,1)
oszczędza ci 5, a może nawet 8 bajtów (kosztem pewnej wydajności).PowerShell v2 +,
177231168 bajtówCo dziwne, byłem w stanie grać w golfa w wersji stałej, aby była krótsza niż wersja nie naprawiona ... oO
Ogromne podziękowania dla @ edc65 za pomoc i inspirację!
Wyjaśnienie:
Przykładowy przebieg:
źródło
R ,
178166 bajtówWypróbuj online!
Łącze TIO służy tylko do liczenia bajtów - wypróbuj to na konsoli R. (lub daj mi znać, jeśli istnieje opcja alternatywna).
Zobacz historię dla mniej golfowej, bardziej czytelnej wersji.
źródło