Add a run-enumeration path and base scoring to the pure-sx model, scoring one resolution round's clears purely by maximal-run length. - find_runs(board) enumerates each maximal H/V run (len >= 3) with its length, parallel to find_matches/MatchMask (left untouched so every clear/cascade caller is unaffected). - run_score(len): length 3 -> 30, 4 -> 60, 5+ -> 100 (named constants). - score_round(board): sum of run_score over the current runs (read-only, must be called before the round's clear). L/T rule: each maximal run scores independently by its own length, so an overlapping L/T scores horizontal + vertical (shared corner counts toward both runs). - Board gains a running `score` field (init zeroes it) and add_round_score accumulates a round's base points into it; the cross-round combo multiplier off Cascade.depth is left for P3.2. - tests/score.sx golden over hand-crafted single-round boards asserts exact points for len-3/4/5 runs, disjoint runs (sum), an overlapping L/T, and a no-match board (0).
2 lines
2 B
Plaintext
2 lines
2 B
Plaintext
0
|