WinBoard, exotic version

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

Oh the font problem is gone. I spelled it as "Draughts Ultrecht" , when it should have been without 'l'. I don't speek dutch :)
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

Resolved : 'feature san=1' was the cause of the below problem. anyhow interesting
New version of winboard seems to use ',' instead of '-' for multiple moves.
See the illegal move rejection below.

[2] 14 60 17 405741 f2e3 f6g5 a1b2 f8g7 b2c3 b8a7 d4e5 e7f6 c3d4 d6c5 g1h2 d8e7 e1f2 e7d6
[2] 14 60 18 423900 f2e3 f6g5 a1b2 f8g7 b2c3 b8a7 d4e5 e7f6 c3d4 d6c5 g1h2 d8e7 e1f2 e7d6
[0] 15 60 23 578069 f2e3 f6g5 a1b2 f8g7 b2c3 b8a7 d4e5 g7f6 c3d4 b6c5 g1h2 c5b4 a3c5 h8g7 e1f2 d6b4
[0] 15 60 25 617862 f2e3 f6g5 a1b2 f8g7 b2c3 b8a7 d4e5 g7f6 c3d4 b6c5 g1h2 c5b4 a3c5 h8g7 e1f2 d6b4
[0] 16 30 36 901758 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 g7e5 c3b4 h8g7 e1f2 e7f6 g1h2 d8e7 b4a5 b8a7
[0] 16 30 68 1758323 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 g7e5 c3b4 h8g7 e1f2 e7f6 g1h2 d8e7 b4a5 b8a7
[0] 17 30 75 1940499 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 e7g5 c3d4 b8a7 d4e5 g7f6 g1f2 f6d4 e1d2 a7b6 h4f6
[0] 17 30 82 2110708 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 e7g5 c3d4 b8a7 d4e5 g7f6 g1f2 f6d4 e1d2 a7b6 h4f6
[0] 18 30 92 2377230 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 e7g5 c3d4 b8a7 d4e5 g7f6 a1b2 a7b6 g1f2 b6a5 e1d2 f6d4 h4f6
[0] 18 30 100 2559079 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 e7g5 c3d4 b8a7 d4e5 g7f6 a1b2 a7b6 g1f2 b6a5 e1d2 f6d4 h4f6
[0] 19 30 114 2949764 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 e7g5 c3d4 b8a7 d4e5 g7f6 g1f2 f6d4 e1d2 a7b6 h4f6 b6a5 g3h4
[0] 19 30 126 3267672 f2e3 f6e5 c1b2 f8g7 b2c3 b6c5 d4f6 e7g5 c3d4 b8a7 d4e5 g7f6 g1f2 f6d4 e1d2 a7b6 h4f6 b6a5 g3h4
nodes = 3267672 <39 qnodes> time = 1266ms nps = 2581099
lazy_eval = 0 splits = 0 badsplits = 0
<000000025422>move f2e3
<000000026875>time 5204
<000000026875>otim 5331
<000000026875>d6e5
[0] 1 0 0 0 f4d6
<000000026875>move f4d6
<000000028109>time 5196
<000000028109>otim 5215
<000000028109>c7e5,e5c3
Error (illegal move): c7e5,e5c3

<000000059578>result * {xboard exit}

[FEN "1p1p1p1p/p1p1p1p1/1p1p1p1p/8/8/P1P1P1P1/1P1P1P1P/P1P1P1P1 w - - 0 1"]

1.g3h4 b6a5 2.e3f4 f6e5 3.h2g3 g7f6 4.c3d4 e5c3 5.d2b4 a5c3 6.b2d4 a7b6 7.f2e3 d6e5 8.f4d6

<000000059578>force
<000000059578>quit
Bye Bye
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

Daniel Shawul wrote:Oh the font problem is gone. I spelled it as "Draughts Ultrecht" , when it should have been without 'l'. I don't speek dutch :)
It is not a matter of speaking Dutch. It is the name of a city, and it does not mean anything in current Dutch. (I guess this name even has Latin roots: the suffix 'trecht' is evolved from the Latin 'trajectum', meaning a crossable place of a river.)

Anyway, I have posted a new version. There was indeed a bug: the drop legality test returned TRUE in variant go, while it should have returned the move type. But testing it with the move type-in (as I have no go engine) was hindered by the fact that there were also bugs for drop moves there (preventing dropping of a Knight). And on scrutinizing the code there I also discovered why it was not possible to start variations through the type-in by keeping shift pressed. So that is fixed now too.

In addition, I now skip the drop menu for an immediate drop if there is only one piece type in the pieceToCharTable (so set it to "P.....p....." for go!), on right-clicking a square.

The dark squares are now less black than they were, to please George.

I also implemented the 4-stage view flipping in variant dark.

http://hgm.nubati.net/WinBoard-4.5.beta.zip
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

Daniel Shawul wrote:Resolved : 'feature san=1' was the cause of the below problem. anyhow interesting
New version of winboard seems to use ',' instead of '-' for multiple moves.
See the illegal move rejection below.
Indeed, as I explained before, in SAN I could not use the hyphen, because it already can occur inside moves like Qd1-h5. So SAN uses comma. And if you ask for SAN, you get it...

Would it be more logical to use the comma in long algebraic too? I could still change that.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

Now the moves seem to work but the reversi display stoped 'reversing' after certain number of moves are played. I am preparing a checkers,reversi & go engine package for you to use for testing. More later.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

I think so too. I will change the hyphen to comma on the assumption you will change it before I send you the engines.

Edit : Changed to comma and all three engines https://sites.google.com/site/dshawul/N ... ects=0&d=1
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

Daniel Shawul wrote:Board size still did not change.
The _user_ has to change it through WB options. It can be done in the New Variant menu dialog, but unfortunately not for Go, because that is not in the menu yet. So OK'ing that dialog would switch to another variant. So you have to set it up with command-line options.

WB then tells the engine what the board size is in the variant command. Even when the engine uses setup, it shouldconform to the given size.
I like your Go board btw. How did you make the stones to be displayed on the intersections rather than in the squares.
Like in the Xiangqi case: by using a bitmap for the board squares. In this case the same bitmap for light and dark squares, of exactly the size of the total board. In that case the bitmap gets totally displayed, as the squares cut out from it exactly match at the boundaries. I use /lineGapOverride=0 to suppress the WinBoard grid. Downside is that there is no highlighting of your moves in that case. For Chess the highlighting with arrow solves the problem, but for dropmoves there is no arrow.
Also before I fotget, in 19x19 go the files are numbered alphabetically but the 9th alphabet is skiped for some weird reason I am not aware of.
We are going to use from 'a' to 's' rather than 'a' to 't', right ?
Yes, WinBoard does not skip the 'i', as it is commonly used to indicate the 9th file on the Capablanca Chess board. Note the WB might not be able to parse double-digit numbers in moves.
Edit:
For checkers, I think you said multiple capture moves can not be input to the GUI by clicking. So this is just a remined that clicking the 'from' and final 'to' square does not work. Even a dedicated checkers GUI I have seems to have this trouble of resolving multi-capture ambiguites for human-computer play.
Yes, they can. You have to enter them leg by leg, keeping the Control key pressed until you enter the last leg. I think it is not the GUI's fault it cannot resolve it: as I showed in the example, it is inherently ambiguous.

If we go more towards knowing the rules, in Checkers the pressing of Ctrl could be left out if the GUI is smart enough to see that from the current to-Square you can still make another capture, and then automatically flag the current move as only partial. And when you cannot make a capture anymore, the currentmove becomes the last leg. I could also do 'chaining': remember the to-square of the previous leg, and pre-load it as from-square for the next leg, so that the next click can indicate the next to-square. So you drag the piece over its first lag (click-click would work too), and then click all subsequent squares it visits.

I use a similar system for Amazons now: the first move (of the Amazon) is always partial, and then the next click drops the arrow. Legality checking already works there.
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

Daniel Shawul wrote:I think so too. I will change the hyphen to comma on the assumption you will change it before I send you the engines.

Edit : Changed to comma and all three engines https://sites.google.com/site/dshawul/N ... ects=0&d=1
OK, I uploaded the comma-using version now. I will download your engines.

Edit:
I see that you have nicely defined option features for the parameters that can be set through the nebiyu.ini file. But what puzzles me is that the ini file says "log on", while the option feature says "log -check 0", which would normally mean "off". What is the relation between the ini file and the option feature? Should the defaults reported by the option features not be taken from the ini file?

Another point: In the ini file there are settings for hash size and nr of CPUs. But you don't allow WB to set them, by sending feature memory=0 and smp=0. Wouldn't it be very easy to support those comamnds as well?
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

The log file situation confuses me too :) I had many ways that Nebiyu could take its winboards commands from. I think in order of strength "ini file, command line, and now options feature". Here is what I have from comments section of spaghetti winboard code. This was important for me while testing on a cluster ... but I don't rember exactly.
/*
* If log=off both in ini and from the command line, delete it.
* If log=off in ini and log=on from command line,then we will have only 1 log file.
* If log=on in ini, then each processor will have separate log files.
*/

I think I set smp=0 for non-smp Nebiyu only, 'cores' is already understood so I will do smp=1 next time. As to the hash size, I had 4 different hash tables for scorpio which I didn't know how to divide the totoal memory to. For Nebiyu it is only one hash table , so that will be corrected too.
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

4p1pp1/PPppPpP1p/1PpPPP1Pp/P1P4PP/8p/2p6/2P1p4/9/9 b - - 27 14

In this position NebiyuGo plays P@a7. That is illegal, isn't it? To be surrounded after your move.

Multi-moves were sent incorrectly to the engine after entering by the user. I fixed that now, and I could play a checkers game against Nebiyu, including a double-capture. I don't fully seem to understand the rules, though. One is not alloed to capture backwards, and the Queens do not move as Bishops?

Playing Go also seems to work, although Nebiyu plays like an absolute moron. I never played Go before, but even I can see that itdrops in places where it is absolutely doomed...