ocaml: phase 5.1 bowling.ml baseline (10-pin bowling score, sample game = 167)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s

Walks the pin-knockdown list applying strike/spare bonuses through
a 10-frame counter:

  strike (10):           score 10 + next 2 throws,  advance i+1
  spare  (a + b = 10):   score 10 + next 1 throw,   advance i+2
  open  (a + b < 10):    score a + b,                advance i+2

Frame ten special-cases are handled implicitly: the input includes
bonus throws naturally and the while-loop terminates after frame 10.

  bowling_score [10; 7; 3; 9; 0; 10; 0; 8; 8; 2; 0; 6;
                 10; 10; 10; 8; 1]
  = 20+19+9+18+8+10+6+30+28+19
  = 167

131 baseline programs total.
This commit is contained in:
2026-05-10 02:26:10 +00:00
parent 63901931c4
commit da54c3ea53
3 changed files with 32 additions and 0 deletions

View File

@@ -407,6 +407,13 @@ _Newest first._
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
'a tree`) with insert + in-order traversal. Tests parametric ADT,
recursive match, List.append, List.fold_left.
- 2026-05-10 Phase 5.1 — bowling.ml baseline (10-pin bowling score
for canonical "167" PBA-style game). Walks pin-knockdown list
applying strike/spare bonuses through a 10-frame counter. Strike
consumes 1 throw + 2 bonus; spare consumes 2 throws + 1 bonus;
open frame is just the two pin counts. Frame ten special-cases
ignored (input includes the bonus throws naturally). 131 baseline
programs total.
- 2026-05-10 Phase 5.1 — tail_factorial.ml baseline (12! via tail
recursion = 479001600). Single-helper tail-recursive loop
threading an accumulator. Companion to factorial.ml (10! via