Oglądałem mistrzostwa świata w snookerze i zastanawiałem się ..
Punktacja w Snookerze
W grze w snookera obowiązują również pewne zasady:
- Kiedy na stole są czerwone kulki, podczas swojej tury musisz najpierw wbić czerwoną piłkę
- Po wbiciu każdej czerwonej kuli musisz wbić kolorową (nie czerwoną) kulkę (wbita kulka jest następnie odkładana na stół)
- Po tym, jak wszystkie czerwone kule są w górze (jest ich 15), możesz najpierw wybrać piłkę kolorową, a następnie zacząć od piłki o najniższym wyniku i przejść do piłki o najwyższym wyniku (nie są one zastępowane)
- Brak doniczkowania w żadnym momencie kończy twoją turę.
- Punkty na piłkę
- Czerwona kula: 1 punkt
- Żółta piłka: 2 punkty
- Zielona kula: 3 punkty
- Brązowa kula: 4 punkty
- Niebieska kula: 5 punktów
- Różowa kula: 6 punktów
- Czarna kula: 7 punktów
Pytanie
Zaczynasz od stołu ze wszystkimi kulkami na stole - 15 czerwonych i jedna z każdej innej kolorowej piłki - i dostajesz wynik gracza w snookerze po pierwszej turze, jakie są sposoby, aby to osiągnąć wynik?
Dane wejściowe będą liczbą od 1 do 147. Możesz wybrać, czy jest to liczba całkowita, czy łańcuch. Dane wyjściowe powinny być różnymi kombinacjami liczby trafień każdej piłki.
Przypadki testowe:
Input: 4
Output:
1r 1g
2r 1y
Input: 25
Output:
4r 3b
5r 2b 1br 1y
5r 2b 2g
...
9r 8y
Zasady:
- Możesz wybrać, czy wypisujesz możliwości podzielone przez nowy wiersz, czy separator (/ ,; | \ lub nawet inne, których mi brakuje)
To jest codegolf, więc wygrywa najkrótszy kod.
"5r 3b 2g"może być wyprowadzony jako [5,0,2,0,3,0,0](o ile jest to spójne)?
bkoloru brązowego i blniebieskiego; więc bkna czarno? Możemy użyć n, ei k(ostatnie litery) dla tych trzech? Co powiesz dlerunana rozpoznanie wszystkich ośmiu kolorów (trzecia litera każdego)?