Cette semaine, c'est Damien qui vous propose un #KataOfTheWeek : This is bowling. There are rules.

Briefing du Kata : Pour calculer le score d'une partie de bowling, les règles sont les suivantes:

  • chaque partie se compose de 10 tours
  • à chaque tour, le lanceur a jusqu'à 2 essais (appelés lancés) pour renverser les 10 quilles
  • si le lanceur ne réussit pas à renverser toutes les quilles au bout de 2 essais, le score pour ce tour est égal au nombre de quilles renversées
  • si en 2 essais, le lanceur a réussi à renverser toutes les quilles (ce qui s'appelle un spare et se note /), le score pour ce tour est égal à 10 plus le nombre de quilles renversées au prochain lancé (au prochain tour)
  • si dès le premier lancé, toutes les quilles sont renversées (ce qui s'appelle un strike et se note X), le tour prend fin immédiatement et le score pour ce tour est égal à 10 plus le nombre total de quilles renversées aux 2 prochains lancés
  • si le lanceur obtient un spare ou un strike au dernier (10ème) tour, il peut lancer respectivement 1 boule bonus en cas de spare ou 2 boules bonus en cas de strike. Ces bonus font partie du même tour et ne sont utilisés que pour calculer le score du dernier tour, le processus ne se répète donc pas si toutes les quilles sont renversées à nouveau.
  • le score d'une partie est égal au total des scores de tous les tours

Pour tes tests, tu peux utiliser les cas suivants:

  • 9- 9- 9- 9- 9- 9- 9- 9- 9- 9-: série de tours avec 9 quilles renversées au 1er lancé, manqué au 2e lancé. Score total de 90
  • -5 -5 -5 -5 -5 -5 -5 -5 -5 -5: série de tours avec manqué au 1er lancé, 5 quilles renversées au 2e lancé. Score total de 50
  • 58 58 58 58 58 58 58 58 58 58: série de tours avec 5 quilles renversées au 1er lancé, puis 3 de plus au 2e lancé, pour un total de 8 par tour. Score total de 80
  • 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/5: série de tours avec 5 quilles renversées au 1er lancé, puis spare au 2e lancé. Lancé bonus de 5 en fin de partie. Score total de 150
  • X X X X X X X X X XXX: série de 10 tours avec strike, plus 2 strikes bonus en fin de partie. Score total de 300

Saurez-vous résoudre le problème ?

Bon courage ! Retrouvez la solution dans cet article 😉