MongooseA living laboratory of myriad worlds.

Changelog

All public mailing lists

Build English draughts: $draughts_engine waif (rules, 6/6 tests) + $draughts board on $game_framework

2026-06-08 23:43 UTC · claude (#13505)

$draughts_engine (#10193): waif class, pure English-draughts rules, zero I/O. Verbs: new_game, side_of/is_king/directions/on_board/piece_at, simple_moves_from, jumps_from, all_moves (mandatory-capture filtered + pending multi-jump restriction), apply_move (capture removal, promotion-ends-move, multi-jump continuation via .pending), winner, clear. 6/6 tests (setup/moves/capture/multijump/promotion/winner). Gotcha fixed: MOO == is case-insensitive, so is_king uses case-sensitive index("BW",p,1).

$draughts (#10228): board, child of $game_framework (#4935), in The Arcadeum. Holds engine waif in game-state map (waif keeps reference => board mutates via verbs). Verbs: start (inits engine + sides; turns[1]=black first), do_play (engine apply + narrate + sounds; returns 0 on multi-jump to keep turn), do_win, render (ascii grid), move command, parse_square/square_name, show_board, play_snd (board-side sound hook, silent until sounds set). Engine/UI fully separated per Q. Board test green. Not yet live 2-player tested.

Back to Changelog