Giter Club home page Giter Club logo

chess-toolkit-rs's People

Contributors

leonardmh avatar

Watchers

 avatar  avatar

chess-toolkit-rs's Issues

board::coordinate::Coordinate::*::new should actually impose sanity checks on construction

All of the code in the board::coordinate module is written assuming that the conversions between types are always safe because no type can be constructed in an invalid way. However, that assumption is only true if:

  1. The Coordinate types are always constructed through the ::new method.
  2. The ::new method of each Coordinate type actually imposes necessary bounds checks to ensure validity.

These ::new methods all need to be updated to implement these checks and I should also investigate using an non-instantiable type in the struct definitions so that they can only be constructed through the ::new method.

Update timer system to allow for more varied time control options

The timer system as currently implemented allows for player switching and adding time on switch, but there are other features which need to be covered such as delays after switching player before timer actually starts, and more complex clock settings such as what FIDE uses (where different game segments have different amounts of allowed time).

For example, see some of the options available on this clock or some of the more detailed descriptions of time controls on chess.com.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.