Rebel wrote: ↑Mon Jun 17, 2019 11:22 am
Nice work Ferdy, runs smoothly. Some minor points.
Code: Select all
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - c0 "c4=0";
rnbqkbnr/pppppppp/8/8/2P5/8/PP1PPPPP/RNBQKBNR b KQkq c3 c0 "Nf6=2";
1. Try this EPD, MEA --> ZeroDivisionError: float division by zero + crash.
Changing "c4=0"; to "c4=1"; and all is okay.
Will fix this ASAP.
Rebel wrote: ↑Mon Jun 17, 2019 11:22 am
2. The EPD output looks great, 2 remarks/ wishes:
2a. Don't append, always overwrite. Time controls mixup else in one file.
I have a code deleting existing epd output filename, but there can be a bug somewhere, will look into it.
Sorry I don't understand by this "Time controls mixup else in one file."
Rebel wrote: ↑Mon Jun 17, 2019 11:22 am
2b. Store every EPD in an OUT folder, the main folder easily becomes messy and in a folder a delete all is more handy.
Right will save epd output to out folder.
Rebel wrote: ↑Mon Jun 17, 2019 11:22 am
3. A wish regarding the time control, add "depth=" as an alternative for movetime. Movetime cancels the search in the middle of an iteration when time is up, depth always finishes the iteration. The easy way out, when movetime < 100 then that number is the iteration depth.
A. For uci engines one can send
to stop the engine, one can send
Don't really like this as it interrupts the engine search.
B. Another case also for uci engines, one can send
with this I don't need to send the stop, uci engine will stop by itself.
In mea I use case B. So it is up to the engine how it would search based on allocated time.
There is one engine I observed that does not support movetime properly, and it will not stop, it continues to search, what I did with this engine is send the stop command.
In contrast there is one engine that does not support movetime properly if you send go movetime 60000, 60000 is just 60 sec or 1 minute, it will return its bestmove earlier than 10sec or so. mea does not have a work around on this type of engine. If I have to implement this, I can send go infinite to this engine and at appropriate time send the stop command, (assuming of course that such uci engine has support for go infinite) this would force the engine to send its bestmove.
I can implement your suggestion by adding a --depth option. Then I can send to uci engine,
Code: Select all
go movetime [time value in ms] depth [depth value]
It now depends on the engine how it would terminate its search based on movetime and depth values.