Chess player/Move generation: Difference between revisions

From Rosetta Code
Content added Content deleted
m (draft task)
(THIS PAGE IS FLAGGED FOR DELETION ON or after 5 MAR 2020.)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{draft task|Move generation}} This is a sub-task of the Chess player task.
<strike><nowiki>{{draft task|Move generation}}</nowiki></strike> This is a sub-task of the Chess player task.

;THIS PAGE IS FLAGGED FOR DELETION ON or after 5 MAR 2020.


Using suitable data structures, generate a list of valid moves given a chess game position and the side-to-move. You can create a basic (and incomplete) solution or create an advanced solution which covers all possible moves and depends on tracking more of the game state.
Using suitable data structures, generate a list of valid moves given a chess game position and the side-to-move. You can create a basic (and incomplete) solution or create an advanced solution which covers all possible moves and depends on tracking more of the game state.
Line 5: Line 7:
Basic implementation:
Basic implementation:
#Moves based on piece type
#Moves based on piece type
#Promotion to queen
#Simple promotion
#Allow resignation
#Allow resignation
More advanced/full implementation:
More advanced/full implementation:
Line 14: Line 16:
#Draw by repetition and 50-move rule
#Draw by repetition and 50-move rule


Explain how complete your solution is, and try to create a self-contained component which could be used by a complete chess program.
Describe how complete your solution is, and try to create a self-contained component which could be used by a complete chess program.

Latest revision as of 10:56, 28 February 2020

{{draft task|Move generation}} This is a sub-task of the Chess player task.

THIS PAGE IS FLAGGED FOR DELETION ON or after 5 MAR 2020.

Using suitable data structures, generate a list of valid moves given a chess game position and the side-to-move. You can create a basic (and incomplete) solution or create an advanced solution which covers all possible moves and depends on tracking more of the game state.

Basic implementation:

  1. Moves based on piece type
  2. Promotion to queen
  3. Allow resignation

More advanced/full implementation:

  1. Castling (not through check)
  2. En-passant capture
  3. All promotions
  4. Move legality for moving in/out of check
  5. Draw by repetition and 50-move rule

Describe how complete your solution is, and try to create a self-contained component which could be used by a complete chess program.