Damage GUI

Discussion about development of draughts in the time of computer and Internet.
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Damage GUI

Post by BertTuyt »

Thats what I do testing the Engine :)

Bert
Krzysztof Grzelak
Posts: 1368
Joined: Thu Jun 20, 2013 17:16
Real name: Krzysztof Grzelak

Re: Damage GUI

Post by Krzysztof Grzelak »

It's just write that it is a bad record of the party.
Joost Buijs
Posts: 474
Joined: Wed May 04, 2016 11:45
Real name: Joost Buijs

Re: Damage GUI

Post by Joost Buijs »

BertTuyt wrote:In the meantime Im working on a simple Engine based upon the (limited) Hub protocol.
It is named Dwarf (for obvious reasons).
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.
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?
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Damage GUI

Post by BertTuyt »

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
Joost Buijs
Posts: 474
Joined: Wed May 04, 2016 11:45
Real name: Joost Buijs

Re: Damage GUI

Post by Joost Buijs »

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
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: 1722
Joined: Wed Apr 14, 2004 16:04
Contact:

Re: Damage GUI

Post by Rein Halbersma »

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
Hi Bert, interesting development! Just to be clear: it's gonna be a text-mode protocol right? No more socket fiddling? Rein
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Damage GUI

Post by BertTuyt »

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

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);
}

BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Damage GUI

Post by BertTuyt »

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
Joost Buijs
Posts: 474
Joined: Wed May 04, 2016 11:45
Real name: Joost Buijs

Re: Damage GUI

Post by Joost Buijs »

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
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Damage GUI

Post by BertTuyt »

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
Yves
Posts: 41
Joined: Sat Feb 20, 2016 14:00

Re: Damage GUI

Post by Yves »

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
:D
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 320 times
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Damage GUI

Post by BertTuyt »

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
Yves
Posts: 41
Joined: Sat Feb 20, 2016 14:00

Re: Damage GUI

Post by Yves »

:) :)
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<br />Thank you tell me if this importance when launching Damage 2016 and Horizon displays if the defaults  highlighted in the image.<br />Yves
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 10523 times
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Damage GUI

Post by BertTuyt »

It indicates that the program is enabled to use the Opening DB (which is not included) and the Endgame DB.

Bert
Yves
Posts: 41
Joined: Sat Feb 20, 2016 14:00

Re: Damage GUI

Post by Yves »

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 :D
Post Reply