Home * Engines * Belzebub

a WinBoard compliant open source chess engine written by Radosław Kamowski in Java, released in May 2002 as free chess game for mobile phones [1] [2]. Belzebub played the first and second Polish Computer Chess Championship. After finishing last at the PCCC 2002, Belzebub became runner-up of the uniform category at the PCCC 2003 behind Tytan.
Beelzebub [3]


Belzebub is the Polish diction of Beelzebub or Baalzebûb, Arabic: بعل الذباب‎, Ba‘al az-Zubab, literally "Lord of the Flies", a Semitic deity that was worshiped in the Philistine city of Ekron. In later Christian and Biblical sources, Beelzebub is referred to as another name for Devil [4] [5] [6]. In Christian demonology, classified by Peter Binsfeld in Tractatus de confessionibus maleficorum & Sagarum an et quanta fides iis adhibenda sit, 1589 [7], Beelzebub is one of the seven Princes of Hell [8] associated with gluttony, one of the seven deadly sins. Gluttony also occurs in chess [9] or even more in computer chess with basically material based evaluation, i.e. grabbing unimportant pawns with the queen, ignoring development and king safety.



Belzebub uses plain 8x8 board arrays, and applies alpha-beta with null move pruning inside an iterative deepening framework with aspiration windows. Move ordering considers the principal variation from previous iteration maintained in a triangular PV-table, MVV-LVA for captures and killer- and history heuristic otherwise.


Like TSCP, Belzebub uses following algorithm to detect repetitions, credited to John Stanback, originated from SCP and his GNU Chess versions [10]. However, it may detect false repetitions in case of exchanging two unequal pieces [11]. Further, the routine keeps the garbage collector busy by allocating the integer array each call, even if the fifty move counter is less or equal three.
/* reps() returns the number of times that the current
   position has been repeated. Thanks to John Stanback
   for this clever algorithm. */
int reps() {
   int i;
   int b[] = new int[64];
   int c = 0;
   /* count of squares that are different from
     the current position */
   int r = 0; /* number of repetitions */
   /* is a repetition impossible? */
   if (fifty <= 3) {
      return 0;
   /* loop through the reversible moves */
   int m = hply - fifty - 1;
   if (m < 0) {
      m = 0;
   } // gdy gra jest wznawiana to tablica hist jest pusta
   for (i = hply - 1; i >= m; --i) {
      if (++b[hist_from[i]] == 0) {
      } else {
      if (--b[hist_to[i]] == 0) {
      } else {
      if (c == 0) {
   return r;

Selected Games

PCCC 2003 - Belzebub - Robin [12]
[Event "PCCC 2003"]
[Site " Łódź, Poland"]
[Date "2003.08.?"]
[Round "?"]
[White "Belzebub"]
[Black "Robin"]
[Result "1-0"]
1.Nf3 Nf6 2.e3 e6 3.Bb5 Be7 4.d4 O-O 5.O-O d5 6.Re1 Bd7 7.Bd3 c5 8.Bd2 Nc6 
9.Nc3 Rc8 10.Bb5 Ne4 11.a4 Nxd2 12.Qxd2 cxd4 13.exd4 Bb4 14.Re3 Qa5 15.Qd1 
a6 16.Bxc6 Bxc6 17.Ne2 Be8 18.c3 Be7 19.b3 Bd8 20.Re5 Bd7 21.Rh5 f6 22.Qc2 
g6 23.Rh6 Re8 24.Nh4 Kg7 25.Rxh7+ Kxh7 26.Qxg6+ Kh8 27.Qf7 Rg8 28.Nf4 Rg7 
29.Nhg6+ Kh7 30.Nf8+ Kh8 31.N4g6+ Rxg6 32.Nxg6# 1-0

See also

External Links

Chess Engine




  1. ^ Chess Mobile by Grzegorz Sidorowicz, May 27, 2002
  2. ^ chess.no-fate.ru - Mobile java chess download - szachy.zip src/engine.java
  3. ^ Beelzebub as depicted in Collin de Plancy's Dictionnaire Infernal (Paris, 1863)
  4. ^ Catholic Encyclopedia: Beelzebub
  5. ^ New Advent Bible: Matthew 12:24-29
  6. ^ New Advent Bible: Luke 11:15-22
  7. ^ historicum.net: Traktate: Binsfeld (Themenschwerpunkt Hexenverfolgung)
  8. ^ Beelzebub from Wikipedia
  9. ^ Reykjavik Open 2013. Fifth round. The advantages of communing with nature | WhyChess
  10. ^ Re: Detecting three-fold repetition? by John Stanback, CCC, July 17, 2000
  11. ^ Re: Move Tables - explain as if I'm five by Karlo Bala Jr., CCC, November 05, 2012
  12. ^ II Mistrzostwa Polski Programów Szachowych - PGN
  13. ^ The demon Bael from Collin de Plancy's Dictionnaire Infernal, 1862

What links here?

Up one Level