Jutro jest festiwal środkowej jesieni iw duchu tych wakacji przedstawię grę hazardową, w którą my (ludzie z Xiamen ) gramy podczas wakacji!
Zasady
Gra toczy się za pomocą sześciu 6-stronnych kości. Różne kombinacje liczb mają różne stopnie, ze szczególnym naciskiem na czwórki i jedynki. Twoim zadaniem jest napisanie programu / funkcji, która uszereguje rękę, biorąc pod uwagę rzut 6 kostkami. Oto rangi (nieco zmodyfikowałem / uprościłem zasady):
Chyba tylko Chińczycy mogą podjąć to wyzwanie! Dobra, w porządku, oto kilka angielskich wyjaśnień.
- 0: 4 czwórki i 2.
- Czwórki 1: 6.
- 2: 6.
- 3: 6 dowolnego rodzaju, z wyjątkiem czwórki i jedynek.
- 4: 5 czwórki.
- 5: 5 dowolnego rodzaju, z wyjątkiem czwórki.
- 6: 4 czwórki.
- 7: Prosto. (1-6)
- 8: 3 czwórki.
- 9: 4 dowolnego rodzaju, z wyjątkiem 4.
- Czwórki 10: 2.
- 11: 1 cztery.
- 12: Nic.
Wejście
6 liczb, tablica 6 liczb lub ciąg 6 liczb reprezentujących wartości 6 rzutów kostką od 1 do 6
Wynik
Twój program / funkcja może zwracać / generować cokolwiek, co wskazuje na rangę, o ile każda ranga jest wskazywana przez jedno wyjście i na odwrót. Dawny. Używanie cyfr 0-12, 1-13 itd.
Przykłady (użycie 0-12 jako danych wyjściowych)
[1,1,1,1,1,1]->2
[1,4,4,4,1,4]->0
[3,6,5,1,4,2]->7
[1,2,3,5,6,6]->12
[3,6,3,3,3,3]->5
[4,5,5,5,5,5]->5
To jest golf golfowy, więc wygrywa najkrótsza bajt!
[1,2,3,5,6,6]->13
?10
nie jest pomijane.Odpowiedzi:
Węgiel drzewny , 55 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Nie pomija 10. Objaśnienie:
Oblicz najwyższą częstotliwość z dowolnej cyfry.
Jeśli istnieje 6 tego rodzaju, odejmij pozycję cyfry w ciągu
14
od 2. To daje 1 dla 6 4s, 2 dla 6 1s i 3 dla 6 czegokolwiek innego.Jeśli jest 5 tego rodzaju, wynik wynosi 5, chyba że jest 5 4, w którym to przypadku 1 jest odejmowane.
Jeśli jest 4 tego rodzaju, to jeśli są 4 4, to wynik wynosi 6, chyba że są 2 1, w takim przypadku wynik wynosi 0, w przeciwnym razie wynik wynosi 9.
Jeśli wszystkie cyfry są różne, wynik to 7.
W przeciwnym razie wynik to 12 - (4 >> (3 - liczba 4s)).
źródło
JavaScript (ES6), 88 bajtów
Wypróbuj online! lub Przetestuj wszystkie możliwe rolki!
Zwraca liczbę całkowitą zgodnie z następującym odwzorowaniem:
W jaki sposób?
metoda
Dane wyjściowe są obliczane przez wykonanie bitowej operacji OR między:
Wyjątki:
Stół
Przykład
Skomentował
źródło
R , 100 bajtów
Zakoduj wynik jako kilka indeksowanych warunków warunkowych. Prostsze niż moje pierwsze podejście z wyrażeniami regularnymi.
Edycja - naprawiono błąd i teraz klasyfikuje wszystkie rzuty.
Wypróbuj online!
źródło
JavaScript (Node.js) , 169 bajtów
Wypróbuj online!
Zwroty
1..13
źródło
Python 2 ,
148119 bajtów-27 bajtów dzięki ovs (1. użycie
.count
pozwalające na użycie amap
; 2. usunięcie zbędnego0
w plasterku; 3. użyciein
raczej niż amax
; 4. skrócone(F==4)*O==2
doF==4>O==2
[od gry w golfaF>3>O>1
])Wypróbuj online!
źródło
d
jest potrzebna tylko jedna, jest ona krótsza jako pełny program .Pyth, 60 bajtów
Mapy do odwróconej rangi, 0-12. Spróbuj go online tutaj , lub sprawdzić wszystkie przypadki testowe od razu tutaj .
Zastosowane pełne mapowanie jest następujące:
Działa to poprzez mapowanie wartości kości na częstotliwości, a następnie obliczanie wartości kilku reguł i przyjmowanie maksimum zestawu.
źródło
Siatkówka ,
137126 bajtów-11 bajtów dzięki @Neil .
Dane wyjściowe są indeksowane 0 (
0..12
).Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
Zamień co 4 na „A”:
Posortuj wszystkie cyfry wejściowe (litery A będą z tyłu):
Co dwa pozostałe wiersze zastępuje dane wejściowe oczekiwanymi danymi wyjściowymi:
źródło
4
coś spoza zakresu,1-6
aby automatycznie posortować do jednego końca (nie jestem pewien, czy to robi różnicę, do którego końca sortujesz).05AB1E ,
5755 bajtówPort odpowiedzi na węgiel drzewny @Neil , ponieważ moje początkowe podejście miało już 60 bajtów i jeszcze nie skończyłem. Jednak moją obecną odpowiedź można jeszcze trochę pograć w golfa.
Wprowadź jako listę cyfr.
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
Rubinowy , 100 bajtów
Wypróbuj online!
Jak to działa:
Policz wystąpienia każdej liczby w tablicy, dodaj liczbę 1 i dodaj liczbę 4.
Następnie spróbuj dopasować do różnych wzorców wyrażeń regularnych.
źródło