Difference between revisions of "Booot"

From Chessprogramming wiki
Jump to: navigation, search
 
Line 101: Line 101:
 
==Misc==
 
==Misc==
 
* [https://en.wikipedia.org/wiki/Boot_%28disambiguation%29 Boot (disambiguation) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Boot_%28disambiguation%29 Boot (disambiguation) from Wikipedia]
* [https://en.wikipedia.org/wiki/Nancy_Sinatra Nancy Sinatra] - [https://en.wikipedia.org/wiki/These_Boots_Are_Made_for_Walkin%27 These Boots Are Made for Walkin'] (1966), [https://en.wikipedia.org/wiki/YouTube YouTube] Video
+
* [[:Category:Nancy Sinatra|Nancy Sinatra]] - [https://en.wikipedia.org/wiki/These_Boots_Are_Made_for_Walkin%27 These Boots Are Made for Walkin'] (1966), [https://en.wikipedia.org/wiki/YouTube YouTube] Video
 
: {{#evu:https://www.youtube.com/watch?v=MnQcExGaEvk|alignment=left|valignment=top}}
 
: {{#evu:https://www.youtube.com/watch?v=MnQcExGaEvk|alignment=left|valignment=top}}
  
Line 110: Line 110:
 
[[Category:Open Source]]
 
[[Category:Open Source]]
 
[[Category:Delphi]]
 
[[Category:Delphi]]
[[Category:Music]]
+
[[Category:Nancy Sinatra]]

Latest revision as of 12:31, 22 March 2020

Home * Engines * Booot

Ukrainian folk costume
featuring Russian boots [1]

Booot,
an UCI compliant open source chess program written in Delphi 6 by Alex Morozov. Booot determines sliding piece attacks with rotated bitboards and applies PVS with all common search improvements such as null move pruning, late move reductions and IID. Booot 6.1, released in October 2016, comes with lazy SMP and a completely redesigned evaluation function [2].

Tournament Play

Booot played the 1st Computer Chess Championship of CIS Countries, the CCT9 and CCT10, and the CPT 2010 and CPT 2011, the WCCC 2011, the ICT 2013, the IGT 2015, where it became runner-up behind Pedone, and the IGT 2016, again second place behind Chiron.

Photos & Games

WCCC 2011

WCCC2011-Booot-Junior.JPG

WCCC 2011, Booot vs Junior, Amir Ban and Alex Morozov [3]

[Event "WCCC Tilburg 2011"]
[Site "Tilburg"]
[Date "2011.11.21"]
[Round "5"]
[White "Booot"]
[Black "Junior"]
[Result "0-1"]

1.Nf3 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O e5 7.d3 Nc6 8.Rb1 a5 9.a3 h6 10.b4 axb4 
11.axb4 Be6 12.Nd2 Rb8 13.b5 Ne7 14.Ba3 Qd7 15.Ra1 Bh3 16.Qb3 h5 17.Nf3 Bxg2 18.Kxg2 Nf5 
19.e4 Nd4 20.Nxd4 exd4 21.Ne2 c5 22.Bc1 Ra8 23.Ra2 Rfb8 24.Bf4 Ng4 25.h3 Ne5 26.Bxe5 Bxe5
27.f4 Bg7 28.f5 h4 29.gxh4 Qd8 30.fxg6 fxg6 31.Rf4 Be5 32.Rg4 Qf6 33.h5 Kh7 34.Rxa8 Rxa8 
35.Rxg6 Qf7 36.Ng3 Bxg3 0-1

WCSC 2018

WCSC 2018 R4 Booot Shredder.JPG

WCSC 2018, Round 4: Stefan Meyer-Kahlen and Alex Morozov in Booot vs. Shredder

[Event "WCSC 2018"]
[Site "Stockholm, Sweden"]
[Date "2018.07.14"]
[Round "4.2"]
[White "Booot"]
[Black "Shredder"]
[Result "1/2-1/2"]

1.Nf3 d5 2.d4 Nf6 3.c4 c6 4.Nc3 e6 5.e3 Nbd7 6.Qc2 Bd6 7.Bd3 O-O 8.O-O dxc4 9.Bxc4 b5 
10.Bd3 Bb7 11.Ng5 Bxh2+ 12.Kxh2 Ng4+ 13.Kg1 Qxg5 14.f3 Ngf6 15.e4 Qh4 16.Ne2 a5 17.Bf4 Ne8 
18.a4 b4 19.Rfd1 h6 20.Rac1 Qf6 21.Be3 Qh4 22.Bc4 Nef6 23.Nf4 Nh5 24.Nh3 Nhf6 25.Qf2 Qxf2+
26.Nxf2 g5 27.Nd3 Rfd8 28.Kf2 Kg7 29.Bb3 Nh7 30.Ba2 Nhf8 31.g3 Ng6 32.Bb3 Ne7 33.Nc5 Bc8 
34.Kg2 Nxc5 35.Rxc5 f5 36.Bc4 fxe4 37.fxe4 Rf8 38.b3 Bd7 39.Rc1 Rfe8 40.Re1 Rf8 41.Bc1 Ng8 
42.Bb2 Nf6 43.g4 Kf7 44.Kg3 Ke7 45.Bc1 Rf7 46.Re2 Kd8 47.e5 Ng8 48.Rh2 Ke8 49.Bd2 Kd8 50.Be2
Be8 51.Bd3 Kc7 52.Rc1 Kb7 53.Be4 Bd7 54.Bg2 Be8 55.Be3 Rc7 56.Be4 Rf7 57.Rd1 Rg7 58.Rc1 Rf7 
59.Rch1 Rc8 60.Rc2 Ra8 61.Rc5 Bd7 62.Rcc1 Raf8 63.Bg2 Ra8 64.Rh2 Be8 65.Be4 Bd7 66.Bd2 Kc7 
67.Bg2 Be8 68.Be3 Kb7 69.Be4 Bd7 70.Bf3 Raf8 71.Bg2 Ra8 72.Bf3 Raf8 73.Bg2 Ra8 74.Bf3 
1/2-1/2 

Code snippets

This is how Booot generates bishop attacks with rotated bitboard lookups in v4.15.1 [4]

Function BishopsMove(from: integer) : bitboard;
var
    indx : integer;
    temp :bitboard;
  begin
    indx:=(AllDh1 shr Dsh1[from]) and MaskDh1[from];
    temp:=RBDh1[from,indx];
    indx:=(AllDa1 shr Dsa1[from]) and MaskDa1[from];
    temp:=temp or RBDa1[from,indx];
    Result:=temp;
  end;

...and inlined in v5.1.0 [5]

Function BishopMovesBB(Square : Tsquare;var Board:Tboard):TBitBoard;inline;
 begin
  result:=RotatedBh1[square,((Board.AllBh1 shr ShiftBh1[square]) and MaskBh1[square])]
       or RotatedBa1[square,((Board.AllBa1 shr ShiftBa1[square]) and MaskBa1[square])];
 end;

Forum Posts

2005 ...

2010 ...

2015 ...

External Links

Chess Engine

Misc

References

  1. Image 2007 in Mokre by Silar, Russian boot from Wikipedia
  2. Booot 6.1 released by Alex Morozov, CCC, October 18, 2016
  3. Photo by Gerd Isenberg
  4. attacks.pas v4.15.1 from Booot from WBEC Ridderkerk
  5. attacks.pas v5.1.0 from Booot from WBEC Ridderkerk

Up one Level