Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 1.46 KB

TODO.md

File metadata and controls

38 lines (29 loc) · 1.46 KB

Immediate priorities

  • Implement Coords as unbounded row-col pair and use where appropriate.
  • Testing for exit fort detection.
  • Iterate occupied squares.
  • Iterate possible moves for a piece.
  • Advanced win conditions (enclosures, repetition rule)
  • Ensure everything is documented, including overview of project, what is/is not supported and assumptions.
  • Clean up lib.rs to expose clean public interface.
  • Larger boards.
  • Review against https://rust-lang.github.io/api-guidelines/.
  • Refactor to allow more efficient tree generation.
    • BoardState: Current state of the board.
    • BoardGeometry: Contains information regarding the immutable physical properties of the board (size, etc).
    • GameState: Small struct containing mutable game state that is necessary to evaluate plays/positions.
    • GameLogic: Game rules and immutable state. Implements functions for evaluating plays/positions. Does not hold GameState internally, but rather, these functions take an instance of GameState as an argument.

Support for extra rules/pieces

  • Implement berserk rule.
  • Implement support for other piece types.

OpenTafl integration

  • Implement Ruleset <-> OpenTafl rule notation.
  • Implement Board <-> OpenTafl board notation.
  • Implement server/client using OpenTafl protocol.

Proof of concept client

  • CLI client.
  • GUI client.
  • Implement AI for Brandubh.

Beyond

  • Python interface