Giter Club home page Giter Club logo

euboschess's Introduction

Latest release

GitHub Workflow Status

Eubos Logo, courtesy of Graham Banks

Eubos

Eubos chess is a multi-threaded Java chess engine.

You can play it online, 24/7, via lichess: (https://lichess.org/@/eubos or https://lichess.org/@/baby_eubos).

Eubos started out as an entirely original engine, based on rather idiosyncratic move generation and an inefficient alpha-beta implementation, but later versions use standard algorithms, like negascout search, in order to make it a bit more competitive! The move generation and evaluation is still mostly original work.

It is currently rated around 2350 Elo against other engines, not humans (this is at blitz 2+1 time control, see http://ccrl.chessdom.com/ccrl/404/).

Features

Eubos uses a standard alpha-beta negascout algorithm with transposition hashing and quiescence search extension. It uses lazy move generation and lazy evaluation.

The evaluation function takes account of the following factors

  • material balance
  • piece mobility
  • pawn structure
  • king safety
  • tactical threats

It knows about draws by 3-fold repetition and insufficient material.

Originally it was Shannon Type A, i.e brute force, searching every single move to a certain depth before searching deeper. Since around version 2.0 is is Type B, i.e. it uses a selective search. Not all moves are searched to the same depth. Some are considered relatively unimportant and ignored.

Configuration

UCI option Eubos functionality
Threads Sets the number of worker threads that shall be used to perform the search. Configuring 1 means Eubos shall be single-threaded, greater than 1 and it will run multi-threaded.
Hash Sets the size of the hash table to use, in Megabytes. The hash table is shared by all the threads, it is not duplicated per worker thread.
Move Overhead Factor for this number of milliseconds on the clock each time a move must be made. This is useful for countering latency in internet games.

Installation

You can get a binary from the bin folder, alongside a batch file for running the Eubos engine in a GUI such as Arena or Cutechess.

You must have installed either Java 8 or a later version of the JRE on the PC in order to run Eubos. I am currently running Eubos with Java 14 from https://adoptopenjdk.net/

Arena

To install Eubos as a UCI engine in the popular Arena Chess GUI:

  1. From the MenuBar, Select Engines > Install New Engine
  2. In the file browser dialog that appears, change the drop down to *.bat
  3. Navigate to the Eubos binary location, select Eubos.bat
  4. Select UCI protocol to communicate with Eubos
  5. That's it!

Alternatively, you can install the Eubos.jar file directly in Arena, but if you do this, be aware that the JVM won't be optimised for the Eubos application and also the memory allocated to the JVM will be capped to 2GB.

euboschess's People

Contributors

cjbolt avatar ddugovic avatar dependabot[bot] avatar yit6 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

euboschess's Issues

Eubos v2.24 blunder : cannot reproduce - Transposition Table corruption on shutdown.

lately i was testing some chess position with several engines in CuteChess and let them play a game with a rather long time control (tc 780+10) to see how they would approach this position : Eubos v2.24 failed in a strange way ..

it was a Dutch Defence : 1.d4 f5 2.Qd3!?
rnbqkbnr/ppppp1pp/8/5p2/3P4/3Q4/PPP1PPPP/RNB1KBNR b KQkq - 1 2

at one point in the game Eubos didn't save its piece, lost that piece and thus lost the game :

eubos_v2 24_wrong_move

here Eubos v2.24 (White) played 13.Nd3?? after 15 seconds, reaching search depth 15 .. when i try to reproduce this outcome in terminal, i don't succeed :

$ java -jar /home/roelof/Apps/ChessEngines/0_JARs/Eubos/v2.24/Eubos-v2.24-asset.jar
uci
id name Eubos 2.24
id author Chris Bolt
option name Hash type spin default 256 min 32 max 4000
option name Threads type spin default 2 min 1 max 4
option name Move Overhead type spin default 10 min 0 max 5000
option name Lazy Threshold type spin default 275 min 0 max 1000
uciok
ucinewgame
position fen r1bqkbr1/1p5p/4p3/1p1pNpp1/2pPn3/5PPB/PPP1P2P/R2Q1RK1 w q - 0 14
go infinite
info depth 1 seldepth 5 score cp -33 pv f3e4 d5e4 e5c4 hashfull 0 nps 347 time 46 nodes 46
info depth 2 seldepth 5 score cp -33 pv f3e4 d5e4 e5c4 hashfull 0 nps 3274 time 33 nodes 114
info depth 3 seldepth 10 score cp -39 pv f3e4 g5g4 h3g2 d5e4 hashfull 0 nps 19980 time 112 nodes 1456
info depth 4 seldepth 14 score cp -40 pv f3e4 d5e4 d1d2 d8a5 d2a5 a8a5 hashfull 0 nps 29074 time 173 nodes 4031
info depth 5 seldepth 13 score cp -42 pv f3e4 d5e4 h3g2 f8d6 c2c3 hashfull 0 nps 60495 time 206 nodes 11180
info depth 6 seldepth 18 score cp -34 pv f3e4 d5e4 e2e3 g5g4 h3g2 f8b4 e5g4 hashfull 0 nps 150013 time 350 nodes 39361
info depth 7 seldepth 15 score cp -31 pv f3e4 d5e4 e2e3 g5g4 h3g2 f8d6 a2a3 d6e5 d4e5 hashfull 0 nps 214045 time 443 nodes 61586
info depth 8 seldepth 22 score cp -31 pv f3e4 d5e4 e2e3 g5g4 h3g2 hashfull 0 nps 240895 time 648 nodes 123262
info depth 9 seldepth 20 score cp -35 pv f3e4 d5e4 e2e3 g5g4 h3g2 f8d6 a2a3 d8c7 d1d2 d6e5 d4e5 c7e5 hashfull 1 nps 256606 time 910 nodes 199517
info depth 10 seldepth 22 score cp -56 pv f3e4 d5e4 e2e3 g5g4 h3g2 f8d6 a2a3 d6e5 hashfull 2 nps 297999 time 1355 nodes 342402
info depth 11 seldepth 23 score cp -52 pv f3e4 d5e4 e2e3 g5g4 h3g2 f8g7 a2a3 d8d5 c2c3 g7e5 d4e5 d5d1 hashfull 5 nps 344499 time 2385 nodes 752096
info depth 12 seldepth 29 score cp -79 pv f3e4 d5e4 a2a3 f8d6 e2e3 g5g4 h3g2 d6e5 d4e5 d8d1 a1d1 c8d7 d1d7 hashfull 17 nps 542047 time 5232 nodes 2774678
info depth 13 seldepth 25 score cp -76 pv f3e4 d5e4 a2a3 e4e3 g3g4 f8g7 g4f5 g5g4 f5f6 g7f6 h3g2 g4g3 h2g3 g8g3 hashfull 33 nps 683782 time 7357 nodes 4900476
info depth 14 seldepth 29 score cp -87 pv f3e4 d5e4 a2a3 e4e3 g3g4 f8g7 c2c3 g7e5 d4e5 d8d1 a1d1 hashfull 52 nps 825189 time 9782 nodes 7739745
info depth 15 seldepth 30 score cp -87 pv f3e4 d5e4 a2a3 d8d5 d1d2 f8d6 d2c3 b7b6 h3g2 a8a7 a1d1 g8g7 e5d3 e8f7 d3e5 d6e5 d4e5 hashfull 103 nps 907314 time 15935 nodes 14030114
info depth 16 seldepth 31 score cp -93 pv f3e4 d5e4 h3g2 f8d6 e2e3 d6e5 d4e5 d8d1 f1d1 c8d7 g3g4 e8e7 g4f5 e6f5 d1d6 b5b4 d6d7 hashfull 203 nps 1067545 time 24704 nodes 25992431
info depth 17 seldepth 33 score cp -107 pv f3e4 d5e4 h3g2 f8d6 e2e3 g5g4 a2a3 d8c7 c2c3 d6e5 d4e5 c7e5 hashfull 332 nps 1179899 time 34939 nodes 40687807
info depth 18 seldepth 34 score cp -94 pv f3e4 d5e4 h3g2 f8d6 e2e3 g5g4 d1e1 d8c7 e1c3 c7a5 c3a5 a8a5 a2a3 c8d7 e5d7 e8d7 d4d5 a5a8 d5e6 hashfull 657 nps 1209966 time 61902 nodes 74352415
info depth 19 seldepth 39 score cp -95 pv f3e4 d5e4 h3g2 f8d6 e2e3 g5g4 d1e1 d8c7 e1c3 c7a5 c3a5 a8a5 c2c3 d6e5 hashfull 994 nps 1263894 time 137974 nodes 173784923
info depth 20 seldepth 38 score cp -95 pv f3e4 g5g4 h3g2 d5e4 c2c3 f8d6 d1c1 d6e5 d4e5 d8c7 f1d1 c7c5 hashfull 1000 nps 1298784 time 479732 nodes 622690576

(i removed all info lines without a score)

this test in terminal shows Eubos v2.24 wants to capture the Black kNight by f3xe4, which indeed is the only good move, obviously - i wonder why Eubos didn't do that in the game ..

can you explain / reproduce this 'behaviour' ?


Here's the full game :

[Event "engine -vs- engine"]
[Site "Holland"]
[Date "2023.11.01"]
[Round "?"]
[White "Eubos v2.24"]
[Black "4ku v3.1"]
[Result "0-1"]
[FEN "rnbqkbnr/ppppp1pp/8/5p2/3P4/3Q4/PPP1PPPP/RNB1KBNR b KQkq - 1 2"]
[GameDuration "00:31:13"]
[PlyCount "75"]
[SetUp "1"]
[TimeControl "780+10"]

1... e6 {-0.44/24 50s} 2. Nf3 {+0.30/14 19s} Nf6 {-0.40/23 33s} 3. Nc3 {+0.23/15 63s} d5 {+0.05/25 92s} 4. g3 {+0.51/13 25s} c5 {0.00/23 25s} 5. Bh3 {+0.48/12 24s} Nc6 {+0.16/25 56s} 6. O-O {+0.24/13 27s} Ne4 {+0.23/23 21s} 7. Bf4 {+0.19/13 28s} g5 {+0.85/26 23s} 8. Be5 {+0.31/13 36s} Rg8 {+0.88/25 25s} 9. Nb5 {0.00/13 22s} Nxe5 {+1.26/25 27s} 10. Nxe5 {-0.63/13 15s} a6 {+1.25/25 20s} 11. f3 {-0.77/14 26s} c4 {+1.28/26 20s} 12. Qd1 {-1.08/15 29s} axb5 {+1.80/25 21s} 13. Nd3 {-0.97/15 15s} cxd3 {+5.92/26 23s} 14. fxe4 {-6.82/14 15s} dxe4 {+6.10/24 17s} 15. e3 {-6.57/15 29s} g4 {+5.92/26 18s} 16. Bg2 {-6.74/15 19s} dxc2 {+5.99/25 24s} 17. Qxc2 {-6.44/14 15s} b4 {+6.05/24 24s} 18. Rfd1 {-6.67/14 41s} Bd7 {+6.04/22 15s} 19. Bf1 {-6.72/14 46s} Rc8 {+6.27/22 15s} 20. Qd2 {-6.91/14 15s} h5 {+6.15/25 30s} 21. Rac1 {-6.88/14 26s} Rxc1 {+6.95/25 15s} 22. Qxc1 {-8.05/16 23s} Bd6 {+6.94/26 21s} 23. d5 {-7.06/16 23s} e5 {+7.11/23 33s} 24. Qd2 {-7.08/14 28s} h4 {+7.26/22 15s} 25. Kg2 {-7.43/14 36s} hxg3 {+8.49/23 16s} 26. hxg3 {-8.17/15 23s} Qg5 {+8.75/23 22s} 27. Re1 {-9.09/14 41s} Qh6 {+10.83/24 14s} 28. Qc2 {-9.81/16 54s} Rh8 {+17.76/30 15s} 29. Kf2 {-14.14/17 36s} Qh2+ {+18.81/29 12s} 30. Bg2 {-14.78/17 44s} Rh3 {+20.58/30 17s} 31. Re2 {-16.78/16 15s} Rxg3 {+17.93/29 110s} 32. Kf1 {-25.29/17 18s} b6 {+15.35/24 8.9s} 33. Qc4 {-15.52/13 11s} Bc5 {+18.09/28 9.5s} 34. d6 {-22.02/15 19s} Kf8 {+25.28/28 14s} 35. Qxb4 {-23.67/15 17s} Bxb4 {+327.61/28 12s} 36. Rd2 {-29.01/5 0.042s} Bb5+ {+327.63/25 10s} 37. Ke1 {-M4/1 0.023s} Qg1+ {+327.65/26 11s} 38. Bf1 {-M2/1 0.042s} Qxf1# {+327.67/27 14s, Black mates} 0-1

Eubos 1.07 batch file on Arena GUI3.5.1 and uci, but nothing happens

Java 8 update 241 is installed , but cf debug-file

2020-03-15 18:07:41,315 Arena 3.5.1
2020-03-15 18:07:41,323Font Arena Chess Figurine MISSING

2020-03-15 18:07:41,410**----------New game---2020-03-15 18:07:41,409 So -------------
2020-03-15 18:07:41,561**----------New game---2020-03-15 18:07:41,561 So -------------
2020-03-15 18:07:41,619screen: 1280x1024
2020-03-15 18:07:41,619
Monitors: 1
2020-03-15 18:07:41,619Monitor0: 1280x1024
2020-03-15 18:07:41,619
FormMonitor: 0
2020-03-15 18:07:41,619**DesktopRect: 0/0 .. 1280/1024
2020-03-15 18:08:03,0331--------------------------Starting engine 1 Eubos---------------------------
2020-03-15 18:08:03,0361Configured Engine 1 Type: Auto
2020-03-15 18:08:03,0371Engine 1 dir: C:\Users\NRL\Downloads
2020-03-15 18:08:03,0371Engine 1 commandline: C:\Users\NRL\Downloads\Eubos.bat
2020-03-15 18:08:03,1461Child Process Prio Adj: PID 4896 java.exe
2020-03-15 18:08:03,1461Engine 1 ProcessID: 3324
2020-03-15 18:08:03,1461Engine 1 Prio:32 ThreadPrio:0
2020-03-15 18:08:03,146-->1:xboard
2020-03-15 18:08:03,166-->1:uci
2020-03-15 18:08:03,183<--1:Exception in thread "main" java.lang.NoClassDefFoundError: com/fluxchess/jcpi/AbstractEngine
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.access$100(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.security.AccessController.doPrivileged(Native Method)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.Class.forName0(Native Method)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.Class.forName(Unknown Source)
2020-03-15 18:08:03,183<--1: at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
2020-03-15 18:08:03,183<--1:Caused by: java.lang.ClassNotFoundException: com.fluxchess.jcpi.AbstractEngine
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,184<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,184<--1: ... 14 more
2020-03-15 18:08:11,225-->1:isready
2020-03-15 18:08:11,984-->1:new
2020-03-15 18:08:11,984-->1:random
2020-03-15 18:08:11,984-->1:level 0 5 0
2020-03-15 18:08:11,984-->1:post
2020-03-15 18:08:11,984-->1:hard
2020-03-15 18:08:11,984-->1:easy
2020-03-15 18:08:13,749-->1:?
2020-03-15 18:08:13,750-->1:force
2020-03-15 18:08:13,750-->1:quit
2020-03-15 18:08:14,1921--------------------------Starting engine 1 Eubos---------------------------
2020-03-15 18:08:14,1931Configured Engine 1 Type: UCI
2020-03-15 18:08:14,1931Engine 1 dir: C:\Users\NRL\Downloads
2020-03-15 18:08:14,1931Engine 1 commandline: C:\Users\NRL\Downloads\Eubos.bat
2020-03-15 18:08:14,3041Child Process Prio Adj: PID 1656 java.exe
2020-03-15 18:08:14,3051Engine 1 ProcessID: 1372
2020-03-15 18:08:14,3051Engine 1 Prio:32 ThreadPrio:0
2020-03-15 18:08:14,325-->1:uci
2020-03-15 18:08:14,361<--1:Exception in thread "main" java.lang.NoClassDefFoundError: com/fluxchess/jcpi/AbstractEngine
2020-03-15 18:08:14,361<--1: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
2020-03-15 18:08:14,361<--1: at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader.access$100(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.security.AccessController.doPrivileged(Native Method)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.Class.forName0(Native Method)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.Class.forName(Unknown Source)
2020-03-15 18:08:14,362<--1: at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
2020-03-15 18:08:14,362<--1:Caused by: java.lang.ClassNotFoundException: com.fluxchess.jcpi.AbstractEngine
2020-03-15 18:08:14,362<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: ... 14 more
2020-03-15 18:08:15,811-->1:quit
2020-03-15 18:08:16,2531--------------------------Starting engine 1 Eubos---------------------------
2020-03-15 18:08:16,2531Configured Engine 1 Type: UCI
2020-03-15 18:08:16,2541Engine 1 dir: C:\Users\NRL\Downloads
2020-03-15 18:08:16,2541Engine 1 commandline: C:\Users\NRL\Downloads\Eubos.bat
2020-03-15 18:08:16,3651Child Process Prio Adj: PID 4044 java.exe
2020-03-15 18:08:16,3651Engine 1 ProcessID: 3612
2020-03-15 18:08:16,3651Engine 1 Prio:32 ThreadPrio:0
2020-03-15 18:08:16,385-->1:uci
2020-03-15 18:08:16,412<--1:Exception in thread "main" java.lang.NoClassDefFoundError: com/fluxchess/jcpi/AbstractEngine
2020-03-15 18:08:16,412<--1: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
2020-03-15 18:08:16,412<--1: at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:16,412<--1: at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:16,412<--1: at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:16,412<--1: at java.base/java.net.URLClassLoader.access$100(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.security.AccessController.doPrivileged(Native Method)
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.Class.forName0(Native Method)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.Class.forName(Unknown Source)
2020-03-15 18:08:16,413<--1: at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
2020-03-15 18:08:16,413<--1:Caused by: java.lang.ClassNotFoundException: com.fluxchess.jcpi.AbstractEngine
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: ... 14 more
2020-03-15 18:08:25,926-->1:isready
2020-03-15 18:08:26,209-->1:isready

2020-03-15 18:07:41,315 Arena 3.5.1
2020-03-15 18:07:41,323Font Arena Chess Figurine MISSING

2020-03-15 18:07:41,410**----------New game---2020-03-15 18:07:41,409 So -------------
2020-03-15 18:07:41,561**----------New game---2020-03-15 18:07:41,561 So -------------
2020-03-15 18:07:41,619screen: 1280x1024
2020-03-15 18:07:41,619
Monitors: 1
2020-03-15 18:07:41,619Monitor0: 1280x1024
2020-03-15 18:07:41,619
FormMonitor: 0
2020-03-15 18:07:41,619**DesktopRect: 0/0 .. 1280/1024
2020-03-15 18:08:03,0331--------------------------Starting engine 1 Eubos---------------------------
2020-03-15 18:08:03,0361Configured Engine 1 Type: Auto
2020-03-15 18:08:03,0371Engine 1 dir: C:\Users\NRL\Downloads
2020-03-15 18:08:03,0371Engine 1 commandline: C:\Users\NRL\Downloads\Eubos.bat
2020-03-15 18:08:03,1461Child Process Prio Adj: PID 4896 java.exe
2020-03-15 18:08:03,1461Engine 1 ProcessID: 3324
2020-03-15 18:08:03,1461Engine 1 Prio:32 ThreadPrio:0
2020-03-15 18:08:03,146-->1:xboard
2020-03-15 18:08:03,166-->1:uci
2020-03-15 18:08:03,183<--1:Exception in thread "main" java.lang.NoClassDefFoundError: com/fluxchess/jcpi/AbstractEngine
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.access$100(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.security.AccessController.doPrivileged(Native Method)
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.Class.forName0(Native Method)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.Class.forName(Unknown Source)
2020-03-15 18:08:03,183<--1: at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
2020-03-15 18:08:03,183<--1:Caused by: java.lang.ClassNotFoundException: com.fluxchess.jcpi.AbstractEngine
2020-03-15 18:08:03,183<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:03,183<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,184<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:03,184<--1: ... 14 more
2020-03-15 18:08:11,225-->1:isready
2020-03-15 18:08:11,984-->1:new
2020-03-15 18:08:11,984-->1:random
2020-03-15 18:08:11,984-->1:level 0 5 0
2020-03-15 18:08:11,984-->1:post
2020-03-15 18:08:11,984-->1:hard
2020-03-15 18:08:11,984-->1:easy
2020-03-15 18:08:13,749-->1:?
2020-03-15 18:08:13,750-->1:force
2020-03-15 18:08:13,750-->1:quit
2020-03-15 18:08:14,1921--------------------------Starting engine 1 Eubos---------------------------
2020-03-15 18:08:14,1931Configured Engine 1 Type: UCI
2020-03-15 18:08:14,1931Engine 1 dir: C:\Users\NRL\Downloads
2020-03-15 18:08:14,1931Engine 1 commandline: C:\Users\NRL\Downloads\Eubos.bat
2020-03-15 18:08:14,3041Child Process Prio Adj: PID 1656 java.exe
2020-03-15 18:08:14,3051Engine 1 ProcessID: 1372
2020-03-15 18:08:14,3051Engine 1 Prio:32 ThreadPrio:0
2020-03-15 18:08:14,325-->1:uci
2020-03-15 18:08:14,361<--1:Exception in thread "main" java.lang.NoClassDefFoundError: com/fluxchess/jcpi/AbstractEngine
2020-03-15 18:08:14,361<--1: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
2020-03-15 18:08:14,361<--1: at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader.access$100(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:14,361<--1: at java.base/java.security.AccessController.doPrivileged(Native Method)
2020-03-15 18:08:14,361<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.Class.forName0(Native Method)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.Class.forName(Unknown Source)
2020-03-15 18:08:14,362<--1: at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
2020-03-15 18:08:14,362<--1:Caused by: java.lang.ClassNotFoundException: com.fluxchess.jcpi.AbstractEngine
2020-03-15 18:08:14,362<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:14,362<--1: ... 14 more
2020-03-15 18:08:15,811-->1:quit
2020-03-15 18:08:16,2531--------------------------Starting engine 1 Eubos---------------------------
2020-03-15 18:08:16,2531Configured Engine 1 Type: UCI
2020-03-15 18:08:16,2541Engine 1 dir: C:\Users\NRL\Downloads
2020-03-15 18:08:16,2541Engine 1 commandline: C:\Users\NRL\Downloads\Eubos.bat
2020-03-15 18:08:16,3651Child Process Prio Adj: PID 4044 java.exe
2020-03-15 18:08:16,3651Engine 1 ProcessID: 3612
2020-03-15 18:08:16,3651Engine 1 Prio:32 ThreadPrio:0
2020-03-15 18:08:16,385-->1:uci
2020-03-15 18:08:16,412<--1:Exception in thread "main" java.lang.NoClassDefFoundError: com/fluxchess/jcpi/AbstractEngine
2020-03-15 18:08:16,412<--1: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
2020-03-15 18:08:16,412<--1: at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:16,412<--1: at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:16,412<--1: at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
2020-03-15 18:08:16,412<--1: at java.base/java.net.URLClassLoader.access$100(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader$1.run(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.security.AccessController.doPrivileged(Native Method)
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.Class.forName0(Native Method)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.Class.forName(Unknown Source)
2020-03-15 18:08:16,413<--1: at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
2020-03-15 18:08:16,413<--1:Caused by: java.lang.ClassNotFoundException: com.fluxchess.jcpi.AbstractEngine
2020-03-15 18:08:16,413<--1: at java.base/java.net.URLClassLoader.findClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
2020-03-15 18:08:16,413<--1: ... 14 more
2020-03-15 18:08:25,926-->1:isready
2020-03-15 18:08:26,209-->1:isready

License?

May other developers run, modify, and redistribute EubosChess?

dynamic PSTs

Regarding the new version 2.18 i read :

Uses parallel add and substract for updating PST contribution, when applying a move
Reformatted PSTs to support parallel arithmetic by game phase
[..]

So, is this a concept to have "dynamic PSTs" ? (a term i use myself)
I never saw any engine have this feature .. until now ?
Sounds interesting. Do you use a known concept or is this your own development ? Can you elaborate a bit on your ideas ? I'm curious.

Eubos v2.18 blunders unexpectedly

Some time ago i stumbled upon this position :

8/p5pp/1pk5/5p2/P1nn4/2NN3P/5PPK/8 w - - 0 1

4-knights-pos-white-move

White to move

Black is a pawn ahead and he can try to win ..
White must not try to win the game and he can make a draw in many ways .. Black should keep 1 pawn alive and try to promote it, without a pawn Black cannot win, even with 2 knights ..

Btw. lately i also mentioned this in an Issue of another engine, regarding training of some NN :
NN for the "4 Knights Position" ?
See Disservin/Smallbrain#320 , it gives you more information about this position.

Here's a game in CuteChess between 4KU (see https://github.com/kz04px/4ku ) with the White pieces and your Eubos v2.18 playing Black, using a not-so-fast 10m10s time control : it seems Black will win, but finally something weird happens, see the little video i created today. The animation is LiChess' replay mode "by CPL", reflecting the PGN clocktimes.

  • if you don't like the music, just turn it off :-)
4ku-vs-eubos.mp4

Maybe the cause of Eubos' last move was due to my memory setting, i use this command in CuteChess :

java -Xshare:off -XX:MaxInlineSize=40 -Djdk.attach.allowAttachSelf -Xmx4G -Xms4G -jar ./Eubos_v2.18_asset.jar

i don't remember where i got this command, i just made a copy of my v2.17 settings while adding the new v2.18 to my CuteChess .. it looks like the '4G' thing points to 4 Gb memory, which is way too big for my system - i have max 8 Gb RAM - so i guess i should adjust this .. and what about the other options ? Isn't just java -jar ./Eubos_v2.18_asset.jar good enough ?


[Event "engine vs engine"]
[Site "Holland @ https://lichess.org/Cob9RZcC "]
[Date "2023.01.31"]
[Round "?"]
[White "4ku v1.0"]
[Black "Eubos v2.18"]
[Result "1/2-1/2"]
[FEN "8/p5pp/1pk5/5p2/P1nn4/2NN3P/5PPK/8 w - - 0 1"]
[GameDuration "00:32:43"]
[PlyCount "97"]
[SetUp "1"]
[TimeControl "600+10"]

1. Kg3 {-1.66/28 28s} Kd6 {+1.45/11 14s} 2. Kf4 {-1.65/27 78s} a6 {+1.40/11 14s} 3. h4 {-1.14/25 22s} g6 {+1.39/11 14s} 4. Kg5 {-1.25/29 20s} Ne5 {+1.46/14 43s} 5. Nxe5 {-1.32/29 36s} Kxe5 {+1.49/13 13s} 6. Kh6 {-1.26/29 18s} b5 {+1.25/13 14s} 7. axb5 {-1.21/30 18s} axb5 {+1.21/15 14s} 8. Na2 {-1.70/30 68s} f4 {+1.88/14 14s} 9. Kxh7 {-1.29/27 20s} Nf5 {+1.70/15 14s} 10. g3 {-1.24/31 22s} fxg3 {+2.02/16 14s} 11. fxg3 {-1.30/35 33s} Kf6 {+2.20/17 14s} 12. g4 {-1.66/34 120s} Nxh4 {+1.84/18 14s} 13. Kh6 {-1.71/30 13s} Nf3 {+1.89/18 19s} 14. Nc3 {-1.79/30 8.5s} Nd4 {+1.89/17 14s} 15. Nd5+ {-1.71/31 9.3s} Kf7 {+0.93/16 35s} 16. Nb4 {-1.92/32 16s} Nf3 {+2.44/18 19s} 17. g5 {-1.37/26 9.4s} Ne5 {+2.76/18 14s} 18. Kh7 {-3.59/32 19s} Ke6 {+2.90/18 14s} 19. Nc2 {-3.67/32 12s} Kf5 {+2.67/18 14s} 20. Kh6 {-3.67/34 11s} Ng4+ {+4.69/17 15s} 21. Kg7 {-3.68/34 20s} Kxg5 {+4.62/17 15s} 22. Kf7 {-3.69/35 54s} Nh2 {+4.51/17 18s} 23. Ke6 {-3.69/29 6.5s} Kf4 {+4.99/17 15s} 24. Nd4 {-4.09/33 36s} b4 {+5.40/17 15s} 25. Kd5 {-4.09/32 33s} Nf3 {+5.43/16 15s} 26. Ne6+ {-4.10/32 10s} Kf5 {+5.06/16 34s} 27. Ng7+ {-4.99/33 12s} Kf6 {+6.30/16 23s} 28. Ne8+ {-4.99/32 18s} Ke7 {15s} 29. Nd6 {-5.78/33 22s} Nd2 {+6.18/16 15s} 30. Nc8+ {-5.79/32 13s} Kd8 {+6.22/16 15s} 31. Nb6 {-5.48/29 6.1s} Kc7 {+5.62/16 16s} 32. Na4 {-5.84/30 6.0s} g5 {+5.96/17 16s} 33. Kd4 {-6.18/30 5.2s} g4 {+5.96/15 16s} 34. Nc5 {-8.19/32 40s} g3 {+6.82/15 26s} 35. Ne6+ {-8.71/30 8.6s} Kc6 {+8.72/16 50s} 36. Ke3 {-8.64/25 3.4s} g2 {+8.55/14 22s} 37. Nd4+ {-8.99/28 4.3s} Kd5 {+12.64/15 32s} 38. Ne2 {-8.87/30 5.0s} Nf3 {+12.79/16 15s} 39. Nf4+ {-9.03/30 9.5s} Kc4 {+13.09/16 15s} 40. Nxg2 {-9.43/32 10s} b3 {+13.19/16 16s} 41. Kxf3 {-9.83/33 37s} b2 {+13.24/15 16s} 42. Kf4 {-10.23/32 28s} b1=Q {+13.25/14 16s} 43. Ne3+ {-11.36/31 22s} Kd3 {+13.35/13 17s} 44. Nf5 {-12.51/28 18s} Qb2 {+13.60/14 17s} 45. Ng3 {-12.91/23 15s} Qf2+ {+18.14/14 65s} 46. Kg4 {-12.91/21 5.0s} Kd4 {+M19/14 49s} 47. Nh5 {-21.31/24 8.8s} Kd5 48. Ng3 {-30.11/31 6.4s} Qf1 49. Nxf1 {+3.59/28 2.4s, Draw by insufficient mating material} 1/2-1/2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.