Chess player/Program options and user interface: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 1:
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
|
Latest revision as of 09:20, 26 June 2023
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:
- Allow player to choose colour
- Validate user-entered moves
- Show updated board position after each move
- Detect and show Checkmate and Stalemate
Advanced implementation:
- Time controls
- Detect drawn positions
- Chess engine interface: UCI, CECP or XBoard
- Use an opening book
- Show principal variation during search
- Computer thinking on opponent's time
- Save and replay games in a standard format
- Analyze positions, eg mate-in-N