CloudFlare suffered a massive security issue affecting all of its customers, including Rosetta Code. All passwords not changed since February 19th 2017 have been expired, and session cookie longevity will be reduced until late March.--Michael Mol (talk) 05:15, 25 February 2017 (UTC)

Chess player/Program options and user interface

From Rosetta Code
Chess player/Program options and user interface is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
This is a sub-task of the Chess player task.

Using previously created Chess player/Move generation and Chess player/Search and evaluation components, write a driver or main loop which will allow a user to play a game against the computer. This can use either a simple ASCII command-line interface or a more elaborate graphical interface. Implement the basic features given below, and optionally some of the more advanced ones

Basic implementation:

  1. Allow player to choose colour
  2. Validate user-entered moves
  3. Show updated board position after each move
  4. Detect and show Checkmate and Stalemate

Advanced implementation:

  1. Time controls
  2. Detect drawn positions
  3. Chess engine interface: UCI, CECP or XBoard
  4. Use an opening book
  5. Show principal variation during search
  6. Computer thinking on opponent's time
  7. Save and replay games in a standard format
  8. Analyze positions, eg mate-in-N