1st Mini Shogi Computer Association Championships 2017

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: 1st Mini Shogi Computer Association Championships 2017

Post by Ferdy »

hgm wrote:Thank you.

In the (admittedly unlikely) case that Takeshi Ito's efforts would interest some Japanese engine developers to participate, wouldn't it be wise to mention on your web page that the tourney is still open for registration (and that engines that use WB protocol or USI are acceptable)? The way it looks now is that everything is final,which could discourage people. The Taiwanese are also quite active in development of mini-Shogi engines.

It is a pity that this GA-Sho!!!!!!!!! engine is so ridiculously resource-consuming.
Site updated.

https://sites.google.com/view/minishogi ... mpionships
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

GNU miniShogi 1.4 issues

Post by Ferdy »

GNU minishogi would crash WB 4.9.170105 after a game is ended. The gnuminishogi.exe does not quit and is still running and is consuming cpu time.

This was run under tournament manager of WB and it is playing against ssp.

Later part of debug, GNU is first.
140677 >first : time 17165
140677 >first : otim 11522
book hit = (NULL)
140677 >first : c3b2
silence
140789 <second:
140789 <first : time 17165 0
140789 <first : otime 11522 0
140789 <first : 14. 3c4d 115220
140789 <first : # White matches -1 pattern(s)
140789 <first : # Black matches -1 pattern(s)
140789 <first : stage = 39
140789 <first : balance[black] = 29 balance[white] = 75
140789 <first :
140789 <first : Move# 15 Target = 265 Clock: 17365
140789 <first : 2. -2973 0 258 a1b2 c5c1+ b2a3
140789 <first : 3- -3620 0 801 a1b2 c5c1+ b2a3 B@b2 a3a4 c1c4 S@b4 c4b4
140789 <first : 3& -12995 0 49413 a1b2 c5c1+ b2a3 G@b4 a3b2
140789 <first : 3. -12995 0 49413 a1b2 c5c1+ b2a3 G@b4 a3b2
140789 <first : move a1b2
SHOGI promoChar = -
SHOGI promoChar = -
140789 >second: time 11522
140789 >second: otim 17354
book hit = (NULL)
140789 >second: usermove 140789 >second: a1b2
silence
140898 <first : Gen 55590 Node 49413 Tree 379 Eval 465 Rate 0 EC 2207561/619260 RS hi 1 lo 1
140898 <first : Hin/Hout/Tcol/Coll/Fin/Fout = 100/1/87/0/0/0
140898 <second: 3 100000 0 0 d3c2 b2b3 G*b4
140898 <second: move d3c2
SHOGI promoChar = -
SHOGI promoChar = -
Interrupting first
140898 >first : time 17354
140898 >first : otim 11712
book hit = (NULL)
140898 >first : d3c2
silence
141007 <second:
141007 <first : time 17354 0
141007 <first : otime 11712 0
141007 <first : 15. 2c3d 117120
141007 <first : # White matches -1 pattern(s)
141007 <first : # Black matches -1 pattern(s)
141007 <first : stage = 43
141007 <first : balance[black] = 30 balance[white] = 74
141007 <first :
141007 <first : Move# 16 Target = 270 Clock: 17554
141007 <first : 2. -12997 0 109 b2a1
141007 <first : move b2a1
SHOGI promoChar = -
SHOGI promoChar = -
141007 >second: time 11712
141007 >second: otim 17543
book hit = (NULL)
141007 >second: usermove 141007 >second: b2a1
silence
141116 <first : Gen 341 Node 109 Tree 379 Eval 26 Rate 0 EC 2207563/619261 RS hi 1 lo 0
141116 <first : Hin/Hout/Tcol/Coll/Fin/Fout = 4/0/3/0/0/0
141116 <second: 1 100000 0 0 G*b2
141116 <second: move G@b2
LegalDrop: 75 @ 3,1)
LegalDrop: 75 @ 3,1)
LegalDrop: 75 @ 3,1)
LegalDrop: 75 @ 3,1)
LegalDrop: 5 @ 3,0)
LegalDrop: 5 @ 3,0)
LegalDrop: 5 @ 4,0)
LegalDrop: 5 @ 4,0)
LegalDrop: 5 @ 5,0)
LegalDrop: 5 @ 5,0)
LegalDrop: 5 @ 6,0)
LegalDrop: 5 @ 6,0)
LegalDrop: 5 @ 6,1)
LegalDrop: 5 @ 6,1)
LegalDrop: 5 @ 2,2)
LegalDrop: 5 @ 2,2)
LegalDrop: 5 @ 3,2)
LegalDrop: 5 @ 3,2)
LegalDrop: 5 @ 4,2)
LegalDrop: 5 @ 4,2)
LegalDrop: 5 @ 5,2)
LegalDrop: 5 @ 5,2)
LegalDrop: 5 @ 6,2)
LegalDrop: 5 @ 6,2)
LegalDrop: 5 @ 2,3)
LegalDrop: 5 @ 2,3)
LegalDrop: 5 @ 3,3)
LegalDrop: 5 @ 3,3)
LegalDrop: 5 @ 4,3)
LegalDrop: 5 @ 4,3)
LegalDrop: 5 @ 6,3)
LegalDrop: 5 @ 6,3)
LegalDrop: 5 @ 2,4)
LegalDrop: 5 @ 2,4)
LegalDrop: 5 @ 3,4)
LegalDrop: 5 @ 3,4)
LegalDrop: 5 @ 5,4)
LegalDrop: 5 @ 5,4)
LegalDrop: 5 @ 6,4)
LegalDrop: 5 @ 6,4)
LegalDrop: 5 @ 3,0)
LegalDrop: 5 @ 3,0)
LegalDrop: 5 @ 4,0)
LegalDrop: 5 @ 4,0)
LegalDrop: 5 @ 5,0)
LegalDrop: 5 @ 5,0)
LegalDrop: 5 @ 6,0)
LegalDrop: 5 @ 6,0)
LegalDrop: 5 @ 6,1)
LegalDrop: 5 @ 6,1)
LegalDrop: 5 @ 2,2)
LegalDrop: 5 @ 2,2)
LegalDrop: 5 @ 3,2)
LegalDrop: 5 @ 3,2)
LegalDrop: 5 @ 4,2)
LegalDrop: 5 @ 4,2)
LegalDrop: 5 @ 5,2)
LegalDrop: 5 @ 5,2)
LegalDrop: 5 @ 6,2)
LegalDrop: 5 @ 6,2)
LegalDrop: 5 @ 2,3)
LegalDrop: 5 @ 2,3)
LegalDrop: 5 @ 3,3)
LegalDrop: 5 @ 3,3)
LegalDrop: 5 @ 4,3)
LegalDrop: 5 @ 4,3)
LegalDrop: 5 @ 6,3)
LegalDrop: 5 @ 6,3)
LegalDrop: 5 @ 2,4)
LegalDrop: 5 @ 2,4)
LegalDrop: 5 @ 3,4)
LegalDrop: 5 @ 3,4)
LegalDrop: 5 @ 5,4)
LegalDrop: 5 @ 5,4)
LegalDrop: 5 @ 6,4)
LegalDrop: 5 @ 6,4)
Interrupting first
141116 >first : G@b2
GameEnds(27, Xboard adjudication: Checkmate, 4)
write FEN 50-move: 0 32 0
e0. p=-1
e1. p=-6
e2. p=-6
e3. p=-6
e4. p=-6
e5. p=-6
e6. p=-6
e7. p=-6
e8. p=-2
e9. p=-2
e10. p=-6
e11. p=-6
e12. p=-6
e13. p=-6
e14. p=-2
e15. p=-2
e16. p=-2
e17. p=-6
e18. p=-6
e19. p=-2
e20. p=-2
e21. p=-6
e22. p=-2
e23. p=-6
e24. p=-2
e25. p=-6
e26. p=-6
e27. p=-2
e28. p=-2
e29. p=-2
e30. p=-6
e31. p=-6
e32. p=100
141116 >first : result 0-1 {Xboard adjudication: Checkmate}
141116 >second: result 0-1 {Xboard adjudication: Checkmate}
141116 >first : force
141116 >second: quit
results = '*'
GNU miniShogi\012Petit Shogi\012
pick next game from '-': 1
Reserved, next=1, nr=0
141116 <first : 16. G*4d 116900
141116 <first : # White matches -1 pattern(s)
141116 <first : # Black matches -1 pattern
The game record:

Code: Select all

&#91;Event "Computer Chess Game"&#93;
&#91;Site "i7-2600K"&#93;
&#91;Date "2017.01.11"&#93;
&#91;Round "1"&#93;
&#91;White "GNU miniShogi 1.4.0p0"&#93;
&#91;Black "ssp &#40;USI2WB&#41;"&#93;
&#91;Result "0-1"&#93;
&#91;TimeControl "180+2"&#93;
&#91;Variant "shogi"&#93;
&#91;FEN "rbsgk/4p/5/P4/KGSBR&#91;-&#93; w 0 1"&#93;
&#91;SetUp "1"&#93;

&#123;--------------
r b s g k
. . . . p
. . . . .
P . . . .
K G S B R
white to play
--------------&#125;
1. Bc2 &#123;-17.89/8&#125; Sb4 &#123;+2.05/13 10&#125; 2. Kb2 &#123;-6.40/9 7&#125; Gd4 &#123;-8.90/13 10&#125; 3.
Sd2 &#123;-2.06/8 5&#125; Ba4 &#123;-14.00/13 9&#125; 4. Gc1 &#123;-0.96/7 3&#125; Bxc2 &#123;-8.95/13 9&#125; 5.
Gxc2 &#123;-0.79/7 4&#125; Rc5 &#123;-13.30/12 9&#125; 6. Gc1 &#123;-0.44/6 2.0&#125; B@c3 &#123;-3.90/13 9&#125;
7. Kb1 &#123;+0.16/8 2.1&#125; Bxd2 &#123;+21.50/13 8&#125; 8. Rxe4 &#123;+4.02/7 8&#125; Gxe4
&#123;+101.20/14 8&#125; 9. B@b2 &#123;-27.55/7 2.0&#125; S@c3 &#123;+1000.00/15 7&#125; 10. Bxc3
&#123;-35.68/7 1.5&#125; Sxc3 &#123;+1000.00/16 6&#125; 11. S@d4 &#123;-129.83/7 0.1&#125; Kxd4
&#123;+1000.00/16 1.7&#125; 12. P@d3 &#123;-129.89/6 0.1&#125; Gxd3 &#123;+1000.00/16 1.8&#125; 13. Ka1
&#123;-129.95/4 0.1&#125; S@b2 &#123;+1000.00/7 0.1&#125; 14. Gxb2 &#123;-129.93/3&#125; Sxb2
&#123;+1000.00/5 0.1&#125; 15. Kxb2 &#123;-129.95/3 0.1&#125; Gc2 &#123;+1000.00/3 0.1&#125; 16. Ka1
&#123;-129.97/2 0.1&#125; G@b2# &#123;+1000.00/1 0.1&#125;
&#123;Xboard adjudication&#58; Checkmate&#125; 0-1
Other issues, invalid move and false illegal move claim.

Code: Select all

&#91;Event "Computer Chess Game"&#93;
&#91;Site "i7-2600K"&#93;
&#91;Date "2016.12.07"&#93;
&#91;Round "52"&#93;
&#91;White "GNU miniShogi 1.4.0p0"&#93;
&#91;Black "Sjaak II 1.4.1"&#93;
&#91;Result "0-1"&#93;
&#91;TimeControl "180+2"&#93;
&#91;Variant "shogi"&#93;
&#91;FEN "rbsgk/4p/5/P4/KGSBR&#91;-&#93; w 0 1"&#93;
&#91;SetUp "1"&#93;

&#123;--------------
r b s g k
. . . . p
. . . . .
P . . . .
K G S B R
white to play
--------------&#125;
1. Sc2 Sb4 &#123;-0.01/16 6&#125; 2. Be2 &#123;-0.56/8 2.4&#125; Bxe2 &#123;+0.14/16 8&#125; 3. Rxe2
&#123;-2.57/7 1.3&#125; B@d4 &#123;+0.25/14 7&#125; 4. Gb2 &#123;+2.06/8 3&#125; Gc4 &#123;+0.79/12 4&#125; 5. Kb1
&#123;+2.97/7 2.7&#125; Bxb2 &#123;+10.07/13 8&#125; 6. Kxb2 &#123;+3.92/7 7&#125; Sc3 &#123;+10.65/11 4&#125; 7.
Sxc3 &#123;+4.27/7 3&#125; G@b3 &#123;+11.93/12 5&#125; 8. Kc1 &#123;+1.78/7 2.7&#125; Gcxc3
&#123;+15.21/11 4&#125; 9. B@b1 &#123;+0.08/7 10&#125; S@b2 &#123;+16.14/11 6&#125; 10. Kd1 &#123;-11.31/8 3&#125;
Sxb1= &#123;+24.19/11 7&#125;
&#123;False illegal-move claim&#125; 0-1

&#91;Event "Computer Chess Game"&#93;
&#91;Site "i7-2600K"&#93;
&#91;Date "2016.12.07"&#93;
&#91;Round "37"&#93;
&#91;White "GNU miniShogi 1.4.0p0"&#93;
&#91;Black "ssp &#40;USI2WB&#41;"&#93;
&#91;Result "0-1"&#93;
&#91;TimeControl "180+2"&#93;
&#91;Variant "shogi"&#93;
&#91;FEN "rbsgk/4p/5/P4/KGSBR&#91;-&#93; w 0 1"&#93;
&#91;SetUp "1"&#93;

&#123;--------------
r b s g k
. . . . p
. . . . .
P . . . .
K G S B R
white to play
--------------&#125;
1. Sb2 Sb4 2. Sc1 &#123;-1.30/8 4&#125; Gd4 &#123;+4.05/13 10&#125; 3. Sc2 &#123;-1.80/8 4&#125; Gc3
&#123;+5.10/13 10&#125; 4. Sxc3 &#123;-1.00/8 2.8&#125; Sxc3 &#123;+6.15/12 10&#125; 5. Gc1 &#123;-5.59/7 7&#125;
Bc4 &#123;+0.00/12 9&#125; 6. G@b3 &#123;-4.64/6 2.8&#125; Bxb3 &#123;+13.70/13 9&#125; 7. Bxb3
&#123;-6.54/6 1.7&#125; S@d2 &#123;+12.20/12 8&#125; 8. Rxe4 &#123;-10.01/6 1.6&#125; Kxe4 9. B@b1
&#123;-11.28/6 4&#125; Kd4 &#123;+39.55/13 8&#125; 10. P@d3 &#123;-24.87/8 5&#125; Ke3 &#123;+82.75/14 8&#125; 11.
Gc2 &#123;-23.51/7 6&#125; G@c1 &#123;+1000.00/14 8&#125; 12. Gxc1 &#123;-129.83/8 0.8&#125; Sxc1=
&#123;+1000.00/15 7&#125;
&#123;False illegal-move claim&#125; 0-1

&#91;Event "Computer Chess Game"&#93;
&#91;Site "i7-2600K"&#93;
&#91;Date "2016.12.07"&#93;
&#91;Round "55"&#93;
&#91;White "GNU miniShogi 1.4.0p0"&#93;
&#91;Black "ssp &#40;USI2WB&#41;"&#93;
&#91;Result "0-1"&#93;
&#91;TimeControl "180+2"&#93;
&#91;Variant "shogi"&#93;
&#91;FEN "rbsgk/4p/5/P4/KGSBR&#91;-&#93; w 0 1"&#93;
&#91;SetUp "1"&#93;

&#123;--------------
r b s g k
. . . . p
. . . . .
P . . . .
K G S B R
white to play
--------------&#125;
1. Sc2 Sd4 2. Kb2 &#123;-5.52/9 9&#125; Gc4 &#123;-5.85/13 11&#125; 3. a3 &#123;-1.18/8 3&#125; Gb4
&#123;-3.35/13 11&#125; 4. Ga2 &#123;-6.83/8 6&#125; Bc4 &#123;+9.90/13 9&#125; 5. a4 &#123;-9.75/8 8&#125; Rxa4
&#123;+37.10/15 9&#125; 6. Rxe4 &#123;-9.75/8 8&#125; Kxe4 &#123;+58.80/14 10&#125; 7. Kc1 &#123;-27.05/8 9&#125;
Rxa2 &#123;+1000.00/14 9&#125;
&#123;Xboard&#58; Forfeit due to invalid move&#58; P@a5 (_1_1 via ^0&#41; res=24&#125; 0-1
I will not include this engine in the tour if this is not fixed, especially that it would crash WB.
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: GNU miniShogi 1.4 issues

Post by hgm »

Well, I am afraid I can do little about the bugginess of GNU minishogi. I am of course interested in making WinBoard resistant to engine misbehavior.

What exactly were the symptoms here? Did you get a popup from Windows that the application was nolonger functioning? Was it hanging, unresponsive to events? Did it just exit?

I see only one non-compliant utterance by GNU minishogi, which is that it prints a move number + move + time after being set thinking. But it seems to do that every time.

BTW, if you would like to broadcast the games live: just before the 9th UEC Cup I have been working on a system that would allow live broadcasting of games on my turn-based server, by allowing a registered 'super user' to start games between players with arbitrary names (even when these were not resgistered users), and to submit moves for ayone. The moves could then be uploaded to the server as soon as they are made. Peoplecould then view them through the normal server interface ( http://hgm.nubati.net/variants/minishogi/ ).
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: GNU miniShogi 1.4 issues

Post by Ferdy »

hgm wrote:Well, I am afraid I can do little about the bugginess of GNU minishogi. I am of course interested in making WinBoard resistant to engine misbehavior.

What exactly were the symptoms here? Did you get a popup from Windows that the application was nolonger functioning? Was it hanging, unresponsive to events? Did it just exit?

I see only one non-compliant utterance by GNU minishogi, which is that it prints a move number + move + time after being set thinking. But it seems to do that every time.
Something like this.

Image

BTW, if you would like to broadcast the games live: just before the 9th UEC Cup I have been working on a system that would allow live broadcasting of games on my turn-based server, by allowing a registered 'super user' to start games between players with arbitrary names (even when these were not resgistered users), and to submit moves for ayone. The moves could then be uploaded to the server as soon as they are made. Peoplecould then view them through the normal server interface ( http://hgm.nubati.net/variants/minishogi/ ).
Negative, I will start it this 29.
Of course I would love to broadcast it if I know how to.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: GNU miniShogi 1.4 issues

Post by Ferdy »

hgm wrote: BTW, if you would like to broadcast the games live: just before the 9th UEC Cup I have been working on a system that would allow live broadcasting of games on my turn-based server, by allowing a registered 'super user' to start games between players with arbitrary names (even when these were not resgistered users), and to submit moves for ayone. The moves could then be uploaded to the server as soon as they are made. Peoplecould then view them through the normal server interface ( http://hgm.nubati.net/variants/minishogi/ ).
In my previous reply I misunderstand that.

So what would I do to broadcast?
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: GNU miniShogi 1.4 issues

Post by hgm »

There is an undocumented feature of WinBoard that interprets a -debugfile argument that starts with 3 slashes not as a file to write on, but as n executable to pipe the debug output to. I made a broadcaster program that can receive the debug output that way, and pick out the lines of engine-GUI communication that it needs to define the game. (IIRC these are the move and usermove commands from and to the first engine, because I also wanted it to work in human-engine mode.)

Whenever a new move comes in, the broadcaster opens a TCP/IP connection to a server-side CGI script, to send a GET request with the move and game number (and user validation info) as parameters. This CGI script manages the game database on the server, adding the move to the requested game, and is also invoked by the HTML viewer page to retrieve the selected games. I now set up such a page for the 1st MSCA Championship at http://hgm.nubati.net/variants/msca1 .

I will dig up the broadcaster program, and have a look how it has to be configured for accessing the desired server and directory on that server, and for the password it should use to be allowed to deposit moves there. (I forgot how I did that.)

It should be relatively simple to improve and extend the system; E.g. I could add a function to the CGI script that would allow the broadcaster client to deposit a PV, and the HTML page to display such a PV of a game that is in progress. I could also add a chat window to the viewer page.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: GNU miniShogi 1.4 issues

Post by Ferdy »

hgm wrote:There is an undocumented feature of WinBoard that interprets a -debugfile argument that starts with 3 slashes not as a file to write on, but as n executable to pipe the debug output to. I made a broadcaster program that can receive the debug output that way, and pick out the lines of engine-GUI communication that it needs to define the game. (IIRC these are the move and usermove commands from and to the first engine, because I also wanted it to work in human-engine mode.)

Whenever a new move comes in, the broadcaster opens a TCP/IP connection to a server-side CGI script, to send a GET request with the move and game number (and user validation info) as parameters. This CGI script manages the game database on the server, adding the move to the requested game, and is also invoked by the HTML viewer page to retrieve the selected games. I now set up such a page for the 1st MSCA Championship at http://hgm.nubati.net/variants/msca1 .

I will dig up the broadcaster program, and have a look how it has to be configured for accessing the desired server and directory on that server, and for the password it should use to be allowed to deposit moves there. (I forgot how I did that.)

It should be relatively simple to improve and extend the system; E.g. I could add a function to the CGI script that would allow the broadcaster client to deposit a PV, and the HTML page to display such a PV of a game that is in progress. I could also add a chat window to the viewer page.
Have you successfully find the broadcaster program?
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: GNU miniShogi 1.4 issues

Post by hgm »

Well, I found something, but it was not entirely compatible with the latest version of the turn-based server anymore. I was suffering from a pretty bad flu the past few days, which effectively crushed my enthusiasm for doing anything about that. But I feel much better now, and will try to prepare a fully operatioal version today.

As the turn-based server was originally meant for human play, it does not have a special provision for showing scores or PVs. But the move format was such that each move could be accompanied by a short text message, which would be displayed above the board when the viewer page displays the position after the move. I guess I can use that to display the score.
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: GNU miniShogi 1.4 issues

Post by hgm »

OK, I uploaded something that seems to work, to

http://hgm.nubati.net/broadcast.exe

This program can be used to push games to a viewer web page on an external server in real time, by placing it in the WinBoard folder, and specifying it as debug file for WinBoard through the following additional options:

-debug -debugfile "///broadcast PASSWORD msca1 SERVER_URL"

The SERVER_URL is optional, and would default to hgm.nubati.net. With the correct PASSWORD, this will cause the games played by WinBoard to appear then at

http://hgm.nubati.net/variants/msca1/

(There are already some 30 games there, mostly crap, which I created during debugging. I will throw all test games away just before the real tournament starts.)

The way it works is that WinBoard pipes its debug output to broadcast.exe (which it launches, triggered by the '///' prefix in the name of the debug file). Broadcast.exe extracts the moves to and from the first engine, and the thinking output of both engines from this, and buffers those in an internal pipe, until one of the engines is set thinking by a go command (or a move directly after 'new'). Only at that time it can know which engine plays which color, and it will create a game on the server by accessing http://SERVER_URL/cgi-bin/tbserver.cgi with the proper parameters.

Then a separate sender thread gets unblocked, and starts reading moves from the internal pipe to deposit them to the server through the same CGI script (but with different parameters). A 'result' command to the first engine, indicating the end of the game, also goes through the internal pipe, and causes the sender thread to revert to the blocked state.

The moves are deposited together with a comment, currently consisting of score/depth. The viewer page now displays this comment a few lines above the board. I will change that page to display it as replacement for the red message. This is purely a server matter; the HTML page and its associated JavaScript determine how the deposited game moves are interpreted.

There are several things I am not happy about, which I will fix the next few days:
* The game result is not properly deposited yet. In human games for which the server was designed the only ways to terminate a game is by resigning or mutual agreement to a draw. When WinBoard is uploading the game, however, it can also terminate with the winning side on move, and it should also be possible to specify a draw without a previous offer. This will require some additions to tbserver.cgi to accept commands for this, and then in broadcast.exe to send these commands.
* I am very unhappy that the broadcast.exe is variant-dependent. This is caused by the need to convert SAN drop moves to the format used by the JavaScript associated with the viewer. The JavaScript needs the pieces by number (according to their position in the piece-legend table), while SAN indicates them by ID. So broadcast.exe has to translate the letters into numbers, a task that depends on the table layout on the viewer page for which it is working.
* It would be nice to have clocks on the viewer page, which count down by themselves, and are synchronized whenever moves come in.
* When the viewer page displays an unfinished game, it should automatically poll the server, waiting for new moves.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: GNU miniShogi 1.4 issues

Post by Ferdy »

hgm wrote:Well, I found something, but it was not entirely compatible with the latest version of the turn-based server anymore. I was suffering from a pretty bad flu the past few days, which effectively crushed my enthusiasm for doing anything about that. But I feel much better now, and will try to prepare a fully operatioal version today.

As the turn-based server was originally meant for human play, it does not have a special provision for showing scores or PVs. But the move format was such that each move could be accompanied by a short text message, which would be displayed above the board when the viewer page displays the position after the move. I guess I can use that to display the score.
I hope you are in good condition now. You can just ignore these things and perhaps come back later if it would take some time.