Je regardais le championnat du monde de snooker et ça m'a fait me demander ..
Score de snooker
Dans le jeu de snooker, il y a certaines règles que vous devez également respecter:
- Lorsqu'il y a des boules rouges sur la table, pendant votre tour, vous devez d'abord mettre une boule rouge en pot
- Après avoir mis chaque balle rouge en pot, vous devez mettre une balle colorée (pas rouge) en pot (la balle colorée en pot est ensuite replacée sur la table)
- Une fois que toutes les boules rouges sont en place (il y en a 15), vous pouvez d'abord choisir une balle de couleur, puis vous commencez avec la balle ayant le score le plus bas et vous progressez jusqu'à la balle ayant le score le plus élevé (celles-ci ne sont pas remplacées)
- Ne rempoter à aucun moment met fin à votre tour.
- Points par balle
- Boule rouge: 1 point
- Ballon jaune: 2 points
- Boule verte: 3 points
- Balle brune: 4 points
- Boule bleue: 5 points
- Boule rose: 6 points
- Boule noire: 7 points
La question
Vous commencez avec une table avec toutes les boules encore dessus - 15 rouges et une de chacune des autres boules colorées - et vous recevez le score d'un joueur de snooker après son premier tour, comment ont-ils pu y arriver But?
L'entrée sera un score allant de 1 à 147. Vous pouvez choisir s'il s'agit d'un entier ou d'une chaîne. La sortie doit correspondre aux différentes combinaisons de nombre de fois où vous avez mis chaque balle en pot.
Cas de test:
Input: 4
Output:
1r 1g
2r 1y
Input: 25
Output:
4r 3b
5r 2b 1br 1y
5r 2b 2g
...
9r 8y
Règles:
- Vous pouvez choisir d'afficher les possibilités divisées par une nouvelle ligne ou un séparateur quelconque (/ ,; | \ ou même d'autres qui me manquent)
C'est codegolf, donc le code le plus court l'emporte.
"5r 3b 2g"-être pourrait-il être sorti [5,0,2,0,3,0,0]aussi longtemps que cela est cohérent?
bpour le brun et blpour le bleu; alors bkpour le noir? Pourrions-nous utiliser n, eet k(dernières lettres) pour ces trois? Que diriez-vous dlerunad'identifier les huit couleurs (3e lettre de chacune)?