Reply
 
LinkBack Thread Tools Display Modes
  #1   Report Post  
Old January 11th 13, 03:31 AM posted to rec.games.chess.computer
external usenet poster
 
First recorded activity by ChessBanter: Jan 2013
Posts: 1
Default Chess engine design resources

A chess engine can in many cases be broken up into the following areas:

The chess game rules:
- Board representation (a confusing term for me, I prefer game state)
- Interface
- Move generation (heavily influenced by how the board is represented)

The engine:
- Position Evaluation
- Search

My advice would be to start with the board representation. Wikipedia has a good description of the requirements of a board representation (http://en.wikipedia.org/wiki/Board_r...)#Requirements)

You also need to develop an interface to the board representation so you can setup a position, make a move, undo a move and query the state. You can do a very basic console based input if you like and track the game on a real board or look at using a 3rd party GUI and implementing support for the board protocol (WinBoard or UCI).

Once you have a working board representation and interface you can start on a move generator to detect invalid input moves and which can be used by the search.

Once finished you should have an engine that can keep track of a chess game, no AI yet but this should be your first major milestone.

You can implement a pretty basic evaluation initially just to allow you to get started on the search.

Searching is probably one of the more difficult concepts to get your head around. The thing to keep in mind is that the searching problem in chess arises because the branching factor is so high which means all positions cannot be searched. The goal is to find good moves quickly and search these moves deeply while discarding bad moves early.

Again, wikipedia has a good section on this:
http://en.wikipedia.org/wiki/Compute...rch_techniques

Understanding the following algorithms will help a lot when faced with all the different search variations:
- Minimax
- Alpha Beta
- Negascout



Unfortunately all these things are integrated in a chess engine which means to speed up evaluation you may change the structure of your board representation. So understanding why a chess engine uses a specific board representation cannot be understood by just examining the board representation, you need to also examine the impact on all the other areas as well as CPU and memory performance.
Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
rec.games.chess.misc FAQ [2/4] [email protected] rec.games.chess.misc (Chess General) 0 May 23rd 06 05:24 AM
rec.games.chess.misc FAQ [2/4] [email protected] rec.games.chess.misc (Chess General) 0 May 8th 06 05:24 AM
rec.games.chess.misc FAQ [2/4] [email protected] rec.games.chess.misc (Chess General) 0 April 23rd 06 05:21 AM
Wikipedia Biography of Eric Schiller Sam Sloan rec.games.chess.misc (Chess General) 2 December 22nd 05 08:02 PM
Computer Chess; Chess Books Sanford rec.games.chess.misc (Chess General) 2 December 6th 05 08:34 PM


All times are GMT +1. The time now is 11:49 AM.

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Copyright 2004-2019 ChessBanter.
The comments are property of their posters.
 

About Us

"It's about Chess"

 

Copyright © 2017