
Bert
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).
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
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
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 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
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