Older Version Newer Version

GerdIsenberg GerdIsenberg Jan 13, 2013

**[[Home]] * [[Engines]] * Vanilla Chess**
|| [[image:vanillachesscookies.jpg width="240" link="http://test.zhaoxinpeng.com/viewjy.php?id=a948d651b34ca30a2dcd2e18"]] ||~ || **Vanilla Chess**, (Vchess)
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 <ref> [[http://users.cecs.anu.edu.au/%7Eshaun/chess/NC3_-_List_of_Entries.html|NC3 2003 - List of Entries]]</ref>. Vanilla Chess has been around since 1996, participating in all [[Australasian National Computer Chess Championship|NC3]] events.||
|| Vanilla chess checkerboard cookies <ref>[[http://test.zhaoxinpeng.com/viewjy.php?id=a948d651b34ca30a2dcd2e18|How do vanilla chess checkerboard cookies?]]</ref>||~ ||^ ||
[[toc]]
=Source Code=
<ref>[[http://kirr.homeunix.org/chess/engines/Norbert%27s%20collection/Vanilla%20Chess%20%28Compilation%29/v2.6g%20JA/vanillachess%2026g/modified%20src%20code/|Index of /chess/engines/Norbert's collection/Vanilla Chess (Compilation)/v2.6g JA/vanillachess 26g/modified src code/vchess26g.c]]</ref>
==Header==
[[code format="cpp"]]
/*************************************/
/*                                   */
/* 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 */
/*                                   */
/*************************************/
[[code]]
[[#MoveGeneration]]
==Move Generation==
Sample [[Move Generation|move generation]] routine for bishops, also used for diagonal queen moves:
[[code format="cpp"]]
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);
      }
   }
}
[[code]]

=Selected Games=
[[NC3 2003]], round 1, [[Vanilla Chess|VChess]] - [[Kanguruh]] <ref>[[http://home.pacific.net.au/%7Etommyinoz/nc3.html|NC3 - 2003 Australian National Computer Chess Championship]] by [[Thomas McBurney]]</ref>
[[code]]
[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
[[code]]

=See also=
* [[Fencer]]
* [[Various Classifications#Food|Food]]

=Forum Posts=
* [[https://groups.google.com/group/rec.games.chess.computer/msg/730c03a83bf92807|Re: cheaper search ?]] by [[Shaun Press]], [[Computer Chess Forums|rgcc]], April 28, 1997 » [[Copy-Make]], [[KnightCap]]
* [[http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=5583|Vanilla Chess by Shaun Press (1997) resurrected]] by [[Jim Ablett]], [[Computer Chess Forums|Winboard Forum]], September 13, 2006

=External Links=
==Chess Engine==
* [[http://users.cecs.anu.edu.au/%7Eshaun/chess/NC3_-_List_of_Entries.html|NC3 2003 - List of Entries]]
* [[http://users.cecs.anu.edu.au/%7Eshaun/chess/NC32004_-_List_of_Entries.html|NC3 2004 - List of Entries]]
* [[http://users.cecs.anu.edu.au/%7Eshaun/chess/NC32005_-_List_of_Entries.html|NC3 2005 - List of Entries]]
* [[http://chessexpress.blogspot.de/2007/07/tridge.html|chessexpress: Tridge]] by [[Shaun Press]], July 23, 2007 » [[KnightCap]], [[Andrew Tridgell]]
* [[http://kirr.homeunix.org/chess/engines/Norbert%27s%20collection/Vanilla%20Chess%20%28Compilation%29/|Index of /chess/engines/Norbert's collection/Vanilla Chess (Compilation)]] by [[Norbert Raimund Leisner]], hosted by [[Kirill Kryukov]] » [[Jim Ablett]], [[Dann Corbit]]
==Misc==
* [[http://en.wikipedia.org/wiki/Vanilla_%28disambiguation%29|Vanilla (disambiguation) from Wikipedia]]
* [[http://en.wikipedia.org/wiki/Vanilla|Vanilla from Wikipedia]]
* [[http://en.wikipedia.org/wiki/Vanilla_%28genus%29|Vanilla (genus) from Wikipedia]]
* [[http://www.beanilla.com/tahitian-vanilla-beans-png-1|Tahitian Vanilla Beans from Papua New Guinea]]
* [[http://en.wikipedia.org/wiki/Chess_pie|Chess pie from Wikipedia]]
* [[http://test.zhaoxinpeng.com/viewjy.php?id=a948d651b34ca30a2dcd2e18|How do vanilla chess checkerboard cookies?]]
* [[http://en.wikipedia.org/wiki/Vanilla_software|Vanilla software from Wikipedia]]

=References= 
<references />
=What links here?= 
[[include page="Vanilla Chess" component="backlinks" limit="40"]]
**[[Engines|Up one Level]]**