Bert

Damage GUI
Re: Damage GUI
Thats what I do testing the Engine 
Bert
Bert
-
Krzysztof Grzelak
- Posts: 1368
- Joined: Thu Jun 20, 2013 17:16
- Real name: Krzysztof Grzelak
Re: Damage GUI
It's just write that it is a bad record of the party.
-
Joost Buijs
- Posts: 492
- Joined: Wed May 04, 2016 11:45
- Real name: Joost Buijs
Re: Damage GUI
Where can I find a description or draft about the Hub protocol? In another thread I also read something about UDI, a UCI look alike.BertTuyt wrote:In the meantime Im working on a simple Engine based upon the (limited) Hub protocol.
It is named Dwarf (for obvious reasons).
Since I'm new to the Draughts experience it is all very unclear to me, there is DXP and Guide (documented) and Hub (UDI?) sans documentation I guess.
I don't want to spend time implementing all these, maybe it is time for a well defined and documented standard based on UCI for instance?
Re: Damage GUI
Joost, so far Guide and DXP are the only one who are documented.
I only started with Hub (an UCI derivate which I called UDI-ish), to connect via pipes the Scan Engine with my GUI.
As this was relatively easy, I started with the Dwarf activity.
Basically if I would start from scratch I would not go along a Guide route, but make a choice for something very easy (even a subset of UCI), using the wording of Rein, less is more.
I will try to put the minimal requirement for the Hub (or whatever name you want to give it) in a next post.
Bert
I only started with Hub (an UCI derivate which I called UDI-ish), to connect via pipes the Scan Engine with my GUI.
As this was relatively easy, I started with the Dwarf activity.
Basically if I would start from scratch I would not go along a Guide route, but make a choice for something very easy (even a subset of UCI), using the wording of Rein, less is more.
I will try to put the minimal requirement for the Hub (or whatever name you want to give it) in a next post.
Bert
-
Joost Buijs
- Posts: 492
- Joined: Wed May 04, 2016 11:45
- Real name: Joost Buijs
Re: Damage GUI
Bert,BertTuyt wrote:Joost, so far Guide and DXP are the only one who are documented.
I only started with Hub (an UCI derivate which I called UDI-ish), to connect via pipes the Scan Engine with my GUI.
As this was relatively easy, I started with the Dwarf activity.
Basically if I would start from scratch I would not go along a Guide route, but make a choice for something very easy (even a subset of UCI), using the wording of Rein, less is more.
I will try to put the minimal requirement for the Hub (or whatever name you want to give it) in a next post.
Bert
A subset of UCI would do very well, in my chess-engine I use a subset of UCI and this is more then enough to play games or run
tournaments. It is not very useful to implement something like this if there is no GUI that supports this.
At the moment I think it would be wise (for me) to get my engine running in console mode and to implement another protocol (besides DXP) somewhere later in time.
Most people over here have > 25 years experience with draughts, besides the program I wrote back in 1992 I have no experience with draughts at all, so it is going to take a lot of time before my program plays at an acceptable level.
Joost
-
Rein Halbersma
- Posts: 1723
- Joined: Wed Apr 14, 2004 16:04
- Contact:
Re: Damage GUI
Hi Bert, interesting development! Just to be clear: it's gonna be a text-mode protocol right? No more socket fiddling? ReinBertTuyt wrote:Joost, so far Guide and DXP are the only one who are documented.
I only started with Hub (an UCI derivate which I called UDI-ish), to connect via pipes the Scan Engine with my GUI.
As this was relatively easy, I started with the Dwarf activity.
Basically if I would start from scratch I would not go along a Guide route, but make a choice for something very easy (even a subset of UCI), using the wording of Rein, less is more.
I will try to put the minimal requirement for the Hub (or whatever name you want to give it) in a next post.
Bert
Re: Damage GUI
Rein , it is extremely simple.
The 3 most important Hub commands from GUI to Engine are level, pos and go.
Output commands info (Search) and move.
See for example the Engine code for the move output (still in embryonic phase, only squares from and to, no captures) but selfexplaining.
Bert
The 3 most important Hub commands from GUI to Engine are level, pos and go.
Output commands info (Search) and move.
See for example the Engine code for the move output (still in embryonic phase, only squares from and to, no captures) but selfexplaining.
Bert
Code: Select all
bool Hub_Move(void)
{
DWORD dPFrom, dPTo;
BITBOARD bbCapture, bbFrom, bbTo;
if (iIDXBestMove == -1) return(false);
if (bTurn == true) {
bbCapture = pTDepth->bbField[BB_BLACKPIECE] ^ pMoveStack[iIDXBestMove].bbField[BB_BLACKPIECE];
bbFrom = pTDepth->bbField[BB_WHITEPIECE] & ~pMoveStack[iIDXBestMove].bbField[BB_WHITEPIECE];
bbTo = ~pTDepth->bbField[BB_WHITEPIECE] & pMoveStack[iIDXBestMove].bbField[BB_WHITEPIECE];
} else {
bbCapture = pTDepth->bbField[BB_WHITEPIECE] ^ pMoveStack[iIDXBestMove].bbField[BB_WHITEPIECE];
bbFrom = pTDepth->bbField[BB_BLACKPIECE] & ~pMoveStack[iIDXBestMove].bbField[BB_BLACKPIECE];
bbTo = ~pTDepth->bbField[BB_BLACKPIECE] & pMoveStack[iIDXBestMove].bbField[BB_BLACKPIECE];
}
int iXCapture = (int)POPCNT64(bbCapture);
BITSCANFORWARD64(&dPFrom, bbFrom);
BITSCANFORWARD64(&dPTo, bbTo);
int iPFrom = iCINEX[dPFrom];
int iPTo = iCINEX[dPTo];
std::cout << "move " << iPFrom << "-" << iPTo << std::endl;
return (true);
}
Re: Damage GUI
Herewith the Dwarf Sources:
https://www.dropbox.com/sh/uv2d2kauvjyg ... 7x1La?dl=0
Here only the Hub commands pos, depth and go are implemented.
Here the folder with the GUI , just start the GUI and Dwarf will be activated.
To play a match against Dwarf (example Dwarf plays black, Oppponents Player-Engine), Levels Fixed Depth (example 12 or whatever), and you just start...
https://www.dropbox.com/sh/4f0fk89rwqrk ... auoea?dl=0
Any questions, comments welcomed.
Bert
https://www.dropbox.com/sh/uv2d2kauvjyg ... 7x1La?dl=0
Here only the Hub commands pos, depth and go are implemented.
Here the folder with the GUI , just start the GUI and Dwarf will be activated.
To play a match against Dwarf (example Dwarf plays black, Oppponents Player-Engine), Levels Fixed Depth (example 12 or whatever), and you just start...
https://www.dropbox.com/sh/4f0fk89rwqrk ... auoea?dl=0
Any questions, comments welcomed.
Bert
-
Joost Buijs
- Posts: 492
- Joined: Wed May 04, 2016 11:45
- Real name: Joost Buijs
Re: Damage GUI
Hi Bert,
I looked very briefly at your code and most of it seems easy to implement, unlike UCI you reflect every command back to the GUI is this needed? Is your GUI waiting for this?
It would also be nice to have an option to display search information like: search-depth, used-time, score, PV, nodes and nodes/sec.
UCI uses separate commands for this, something simple like "info string" does the job as well.
At the moment the search() in my engine is basically as simple as the one in the Dwarf program, it seems better to me to extend my search() before I start implementing your protocol.
This means I still have to add PVS with iterative deepening and SMP, this will take some days (if I have time to work on it).
Hopefully I can give you a more substantiated response by the end of the week.
Joost
I looked very briefly at your code and most of it seems easy to implement, unlike UCI you reflect every command back to the GUI is this needed? Is your GUI waiting for this?
It would also be nice to have an option to display search information like: search-depth, used-time, score, PV, nodes and nodes/sec.
UCI uses separate commands for this, something simple like "info string" does the job as well.
At the moment the search() in my engine is basically as simple as the one in the Dwarf program, it seems better to me to extend my search() before I start implementing your protocol.
This means I still have to add PVS with iterative deepening and SMP, this will take some days (if I have time to work on it).
Hopefully I can give you a more substantiated response by the end of the week.
Joost
Re: Damage GUI
Joost a quick reply, message reflection is not required.
I implemented this as a debugging purpose to secure (and check) that the Engine received the message from the GUI.
Bert
I implemented this as a debugging purpose to secure (and check) that the Engine received the message from the GUI.
Bert
Re: Damage GUI
BertTuyt wrote:Herewith the Dwarf Sources:
https://www.dropbox.com/sh/uv2d2kauvjyg ... 7x1La?dl=0
Here only the Hub commands pos, depth and go are implemented.
Here the folder with the GUI , just start the GUI and Dwarf will be activated.
To play a match against Dwarf (example Dwarf plays black, Oppponents Player-Engine), Levels Fixed Depth (example 12 or whatever), and you just start...
https://www.dropbox.com/sh/4f0fk89rwqrk ... auoea?dl=0
Any questions, comments welcomed.
Bert
- Attachments
-
- Games Dwarf.pdn
- Hi Bert
Here the games played Dwarf against Dragon, Flits, Horizon 43,
Kingsrow, Mobydam, Scan, Tornado and Truus in DXP. He plays fast.
I have not seen the database appear in the Damage window.
Yves - (13.56 KiB) Downloaded 367 times
Re: Damage GUI
Yves, thanks for testing.
Bascically Dwarf is a demo Engine to demonstrate how to connect via Hub towards the Damage GUI.
So the good news is that also DXP works, but with respect to strength it will loose against all known competitors.
Which is also not a problem
Bert
Bascically Dwarf is a demo Engine to demonstrate how to connect via Hub towards the Damage GUI.
So the good news is that also DXP works, but with respect to strength it will loose against all known competitors.
Which is also not a problem
Bert
Re: Damage GUI
BertTuyt wrote:Yves, thanks for testing.
Bascically Dwarf is a demo Engine to demonstrate how to connect via Hub towards the Damage GUI.
So the good news is that also DXP works, but with respect to strength it will loose against all known competitors.
Which is also not a problem
Bert
- Attachments
-
- Hi Bert
Thank you tell me if this importance when launching Damage 2016 and Horizon displays if the defaults highlighted in the image.
Yves - Image.jpg (111.86 KiB) Viewed 10975 times
Re: Damage GUI
It indicates that the program is enabled to use the Opening DB (which is not included) and the Endgame DB.
Bert
Bert
Re: Damage GUI
Hi Bert
Thank you for all you do for the game of draughts community.
Until Dwarf progresses, I play Damage Damage 2016 and the 4.0 engine.
Dxp connection works well with all but the games are long.
Yves
Thank you for all you do for the game of draughts community.
Until Dwarf progresses, I play Damage Damage 2016 and the 4.0 engine.
Dxp connection works well with all but the games are long.
Yves
