Cette semaine, c'est Nicolas qui vous propose un #KataOfTheWeek : Compteur de points au tennis.

Briefing du Kata : Rappel rapide des règles :

  • Pour gagner un match, il faut gagner deux sets (trois pour certains tournois pour les hommes mais on ne va pas s'attarder là dessus).
  • Pour gagner un set, il faut gagner normalement 6 jeux.
  • On est forcé d'avoir un écart de deux points pour gagner un set. 5-5 nous envoie à 7-5 pour gagner le set.
  • En revanche, "6-6" va entraîner un tie-break. Ceci consiste à démarrer un jeu où on compte les points de 1 en 1 et le premier joueur à atteindre 7 points avec 2 points d'écart gagne le tie-break et le set par la même occasion.
  • Pour gagner un jeu il faut marquer 4 balles avec deux points d'écart.
  • Les points d'un jeu sont comptés dans l'ordre suivant: 0, 15, 30, 40
  • Si il y a "40-40", on parle d'égalité. Il faudra alors marquer deux points consécutifs pour remporter le jeu. Si un joueur marque un point, ce dernier prend l'avantage (av). Si l'adversaire marque à son tour, on retourne à "40-40".

Le but du kata consiste à partir d'une chaîne de caractères composée d'une suite de 1 et de 2, représentant les balles marquées par chaque joueur, de donner le score correspondant au format suivant:

  • "S1-S2 P1-P2 X1-X2" si le match est encore en cours
  • "Player X Win !" si on a un gagnant.

S1 = Nombre de set gagné par 1 S2 = Nombre de set gagné par 2 P1 = Nombre de jeux du set courant gagné par 1 P2 = Nombre de jeux du set courant gagné par 2 X1 = Nombre de balles du jeu courant gagné par 1 X2 = Nombre de balles du jeu courant gagné par 2

Exemple : "11111111" : "0-0 2-0 0-0" "112111111112" : "0-0 2-0 30-15" "11212212121" : "0-0 0-0 av-40" "111111111111111111112222222222222222222211112222111111" : "0-0 6-6 6-0" "111111111111111111111111111111111111111111111111" : "Player 1 Win !"

Saurez-vous résoudre le problème ?

Bon courage ! Retrouvez la solution dans cet article 😉