Difference between revisions of "Vanilla Chess"

From Chessprogramming wiki
Jump to: navigation, search
(Created page with "'''Home * Engines * Vanilla Chess''' FILE:vanillachesscookies.jpg|border|right|thumb|Vanilla chess checkerboard cookies <ref>How do vanilla chess checkerb...")
 
Line 4: Line 4:
  
 
'''Vanilla Chess''', (Vchess)<br/>
 
'''Vanilla Chess''', (Vchess)<br/>
a [[WinBoard]] compliant [[Open Source Engines|open source chess engine]] by [[Shaun Press]], written in [[C]]. It features a [[0x88]] board and an offset [[Move Generation|move generator]] with its nested loops over [[Pieces|pieces]], [[Direction|directions]], and for [[Sliding Pieces|sliding pieces]], from the closest to the farthest [[Target Square|target square]] per direction. Its [[Search|search]] is vanilla plain [[Alpha-Beta|alpha-beta]] with [[Iterative Deepening|iterative deepening]], [[Aspiration Windows|aspiration windows]], [[History Heuristic|history heuristic]] and [[Transposition Table|transposition table]], according to its author, the [[Evaluation|evaluation]] is a bit messy. Vanilla Chess has been around since 1996, participating in all [[Australasian National Computer Chess Championship|NC3]] events.
+
a [[WinBoard]] compliant [[:Category:Open Source|open source chess engine]] by [[Shaun Press]], written in [[C]]. It features a [[0x88]] board and an offset [[Move Generation|move generator]] with its nested loops over [[Pieces|pieces]], [[Direction|directions]], and for [[Sliding Pieces|sliding pieces]], from the closest to the farthest [[Target Square|target square]] per direction. Its [[Search|search]] is vanilla plain [[Alpha-Beta|alpha-beta]] with [[Iterative Deepening|iterative deepening]], [[Aspiration Windows|aspiration windows]], [[History Heuristic|history heuristic]] and [[Transposition Table|transposition table]], according to its author, the [[Evaluation|evaluation]] is a bit messy. Vanilla Chess has been around since 1996, participating in all [[Australasian National Computer Chess Championship|NC3]] events.
  
 
=Source Code=
 
=Source Code=
Line 98: Line 98:
  
 
'''[[Engines|Up one Level]]'''
 
'''[[Engines|Up one Level]]'''
 +
[[Category:Open Source]]
 +
[[Category:WinBoard]]

Revision as of 14:55, 26 June 2018

Home * Engines * Vanilla Chess

Vanilla chess checkerboard cookies [1]

Vanilla Chess, (Vchess)
a WinBoard compliant open source chess engine by Shaun Press, written in C. It features a 0x88 board and an offset move generator with its nested loops over pieces, directions, and for sliding pieces, from the closest to the farthest target square per direction. Its search is vanilla plain alpha-beta with iterative deepening, aspiration windows, history heuristic and transposition table, according to its author, the evaluation is a bit messy. Vanilla Chess has been around since 1996, participating in all NC3 events.

Source Code

[2]

Header

/*************************************/
/*                                   */
/* Program: Vanilla Chess V2.6       */
/* Author: Shaun Press               */
/* Date: February 1997               */
/* ...                               */
/* Very simple chess program that    */
/* plays legal chess.                */
/* Now has transposition tables      */
/* search windows, move ordering     */
/* (History Heuristic)               */
/*                                   */
/*PS Don't look at the eval function */
/*                                   */
/*************************************/

Move Generation

Sample move generation routine for bishops, also used for diagonal queen moves:

void bishopmoves(int mover, struct movelisttype * movelist, int nsquare) {
   int loop, otherp;
   int bishopdir[4] = {0xf, 0x11, -0x11, -0xf};
   struct movetype pmove;

   otherp = opponent[mover];
   pmove.startsq = nsquare;
   pmove.piece = board.square[nsquare].piece;
   pmove.special = EMPTY;
   for (loop = 0; loop < 4; loop++) {
      pmove.endsq = nsquare + bishopdir[loop];
      pmove.capture = nocapture;
      while (!(pmove.endsq & 0x88) && (board.square[pmove.endsq].colour == EMPTY)) {
         addmove(mover, &pmove, movelist);
         pmove.endsq += bishopdir[loop];
      }
      if (!(pmove.endsq & 0x88) && (board.square[pmove.endsq].colour == otherp)) {
         pmove.capture = board.square[pmove.endsq].piece;
         addmove(mover, &pmove, movelist);
      }
   }
}

Selected Games

NC3 2003, round 1, VChess - Kanguruh [3]

[Event "NC3 2003"]
[Site "RedHill, Canberra, Australia"]
[Date "2003.07.22"]
[Round "1"]
[White "VChess"]
[Black "Kanguruh"]
[Result "1-0"]

1.Nc3 e5 2.Nf3 Nc6 3.e4 g6 4.Bc4 Bg7 5.O-O Nge7 6.Ng5 O-O 7.d3 Na5 8.Bxf7+ Rxf7 
9.Nxf7 Kxf7 10.Be3 Kg8 11.Qd2 Nac6 12.Rae1 d6 13. Bg5 Bg4 14.a4 Nb4 15.f3 Be6 
16.f4 exf4 17.Rxf4 c5 18.Ref1 Qd7 19. Ne2 Nbc6 20.c3 Bb3 21.Nc1 Bxa4 22.b4 Kh8 
23.bxc5 dxc5 24.Rf7 Re8 25.Qa2 c4 26.Qxa4 cxd3 27.Qa2 Qd6 28.Rxg7 Qc5+ 29.Kh1 
Nd5 30.Rff7 Rxe4 31.Nxd3 Qd6 32.Bh6 Qxh2+ 33.Kxh2 Rh4+ 34.Kg1 Rxh6 35.Qxd5 Rh5 
36.Qd7 Rh1+ 37.Kxh1 Ne7 38.Rxh7+ Kg8 39.Qe8+ 1-0

See also

Forum Posts

External Links

Chess Engine

Misc

References

Up one Level