Skip to content

Instantly share code, notes, and snippets.

@jmlclosa
Last active February 4, 2020 20:34
Show Gist options
  • Save jmlclosa/72bffe414350b05ed50879a72058e474 to your computer and use it in GitHub Desktop.
Save jmlclosa/72bffe414350b05ed50879a72058e474 to your computer and use it in GitHub Desktop.
[Kata Bowling] #kata

BOWLING

http://codingdojo.org/kata/Bowling/

Enunciado

Dado una secuencia válida de tiradas de bolos, devolver la puntuación total de la partida.

Simplificaciones:

  • No comprobar la validez de las tiradas
  • No comprobar el número de tiradas
  • No proporcionar puntuaciones intermedias

Reglas de puntuación:

  • Cada partida se compone de 10 turnos
  • Hay 10 bolos que se intentan tirar en cada turno
  • En cada turno el jugador hace 2 tiradas
  • Si en un turno el jugador no tira los 10 bolos, la puntuación del turno es el total de bolos tirados.
  • Si en un turno el jugador tira los 10 bolos (un "spare"), la puntuación es 10 + número de bolos tirados en la siguiente tirada (del siguiente turno).
  • Si en la primera tirada del turno tira los 10 bolos (un "strike") el turno acaba y la puntuación es 10 + número de bolos de las dos tiradas siguientes.
  • Si el jugador logra un spare o un strike en el último turno, obtiene una o dos tiradas más (respectivamente). Esas tiradas cuentan como el mismo turno (el décimo)

Tests de aceptación:

  1. X X X X X X X X X X X X (12 rolls: 12 strikes) = 10 frames * 30 points = 300
  2. 9- 9- 9- 9- 9- 9- 9- 9- 9- 9- (20 rolls: 10 pairs of 9 and miss) = 10 frames * 9 points = 90
  3. 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/5 (21 rolls: 10 pairs of 5 and spare, with a final 5) = 10 frames * 15 points = 150

2019-06-18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment