Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Difference between revisions of "Move Representation"


 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
The representation of a chess game includes representation of positions and moves. Positions represent states of game and moves represent operators which are used to achieve transition from one position to another. Both of these representations must be able to do the following operations:
+
Moves have to be pithy and compact because in search algorithm we need to make moves and also store moves to use them later. A good schema for move representaton can be by a 16-bit integer value with following bit mask.
  
* make move
+
0000000000111111 - index of square from<br>
* unmake move
+
0000001111000000 - promotion piece (optionally)<br>
* generate a list of all possible moves
+
1111110000000000 - index of square to<br>
* generate a list of all possible capture moves
 
* evaluate a position
 
* store moves
 
* compare positions
 
* set position
 
* check if position has been repeated 3 times
 
* check rule of 50 moves
 
* check if king is in check
 
 
 
All of these operations must be very time efficient because they take place inside the search algorithm. Efficient presentation of game will therefore exhibit an efficient chess program.
 
 
 
The move is represented by a 16-bit integer value with following bit mask.
 
 
 
0000000000111111 - index of square from.<br>
 
0000001111000000 - promotion piece (optionally).<br>
 
1111110000000000 - index of square to.<br>
 
  
 
First six bits are used for the description of source square, next four for promotion piece type and last six for destination square. Promotion piece type is optionaly.
 
First six bits are used for the description of source square, next four for promotion piece type and last six for destination square. Promotion piece type is optionaly.
  
 
[[Category:Borko Bošković]]
 
[[Category:Borko Bošković]]
 +
[[Category:Research activity]]
 
[[Category:Chess program BBChess]]
 
[[Category:Chess program BBChess]]
 +
[[Category:Representation of Chess Game]]
  
[[sl:Predstavitev potez]]
+
[[sl:Bitna predstavitev potez]]

Latest revision as of 09:05, 19 October 2006

Moves have to be pithy and compact because in search algorithm we need to make moves and also store moves to use them later. A good schema for move representaton can be by a 16-bit integer value with following bit mask.

0000000000111111 - index of square from
0000001111000000 - promotion piece (optionally)
1111110000000000 - index of square to

First six bits are used for the description of source square, next four for promotion piece type and last six for destination square. Promotion piece type is optionaly.