Weird game..worth analysing!!!!

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Weird game..worth analysing!!!!

Postby matematiko » 06 Mar 2010, 01:06

Hello all!

Unfortunately I was not expecting the weird end game result, so I do not have any sort of logs.

I was playing in POGO using two of my IDs each on a diferent computer, last move of the game was made by blacks and was a pawn promotion to knight.
Both WinBoards reported a stalemate, which is an incorrect detection, and POGO did not.

Who is the culprit for the wrong end game detection? Rybka3x64? WinBoard? or my ICS Emulator(which has a legality check and end game detection algorythm?

Code: Select all
 [Event "?"]
 [Site "Pogo"]
 [Date "2010.03.05"]
 [Round "?"]
 [White "Guy1"]
 [Black "Guy2"]
 [Result "*"]
 1.e4 c5
 2.Nb1c3 d6
 3.Ng1e2 Ng8f6
 4.d4 cxd4
 5.Ne2xd4 a6
 6.f3 e5
 7.Nd4b3 Bc8e6
 8.Bc1e3 Nb8d7
 9.g4 b5
 10.g5 b4
 11.Nc3e2 Nf6h5
 12.Qd1d2 a5
 13.Ne2g3 Nh5xg3
 14.hxg3 Qd8b8
 15.f4 g6
 16.Qd2d3 Qb8b7
 17.fxe5 dxe5
 18.O-O-O a4
 19.Nb3d2 Bf8e7
 20.Bf1h3 Be6xh3
 21.Rh1xh3 Ra8d8
 22.Qd3d5 Qb7c7
 23.Qd5c4 Rd8c8
 24.Qc4xc7 Rc8xc7
 25.Rd1h1 a3
 26.b3 Rc7c3
 27.Nd2c4 Rc3xe3
 28.Nc4xe3 Be7xg5
 29.Kc1d2 Nd7f6
 30.Kd2d3 Ke8e7
 31.Ne3c4 Ke7e6
 32.c3 Rh8d8+
 33.Kd3c2 bxc3
 34.Rh3h2 Rd8d4
 35.Rh2e2 Nf6xe4
 36.Rh1xh7 Bg5f6
 37.Rh7h3 Bf6e7
 38.g4 f6
 39.Rh3h6 Ke6f7
 40.Re2g2 Rd4d8
 41.Rg2g1 Ne4f2
 42.Kc2xc3 Rd8d4
 43.Rh6h2 Rd4f4
 44.Rh2g2 Be7c5
 45.Kc3c2 e4
 46.Kc2d2 Nf2d3
 47.Rg1h1 Rf4f3
 48.Rh1h7+ Kf7e6
 49.Rg2e2 Rf3f4
 50.Nc4e3 Nd3e5
 51.Rh7h8 Ne5xg4
 52.Ne3c2 f5
 53.b4 Bc5d6
 54.Rh8h3 Ng4e5
 55.Kd2c3 Bd6e7
 56.Kc3b3 g5
 57.Rh3c3 g4
 58.Nc2xa3 Rf4f1
 59.b5 Be7d8
 60.Na3c2 Rf1b1+
 61.Kb3a4 Rb1d1
 62.Ka4b3 Bd8a5
 63.Rc3c8 Rd1d3+
 64.Kb3a4 Ba5b6
 65.Nc2b4 Rd3d4
 66.Ka4b3 g3
 67.Nb4c6 Rd4d3+
 68.Kb3c2 Ne5c4
 69.Rc8g8 Ke6f7
 70.Rg8g5 Kf7f6
 71.Rg5g8 Nc4a3+
 72.Kc2c1 Na3xb5
 73.Nc6b4 Bb6e3+
 74.Kc1b2 Nb5d4
 75.Re2g2 Rd3d2+
 76.Rg2xd2 Be3xd2
 77.Nb4d5+ Kf6e5
 78.Nd5c3 Ke5f4
 79.a4 Kf4f3
 80.Nc3b5 Nd4xb5
 81.axb5 Bd2e3
 82.Rg8f8 g2
 83.Rf8xf5+ Be3f4
 84.Rf5h5 g1Q
 85.Rh5h3+ Kf3g2
 86.Rh3h7 Qg1d4+
 87.Kb2a3 e3
 88.Rh7h5 e2
 89.Rh5c5 Qd4xc5+
 90.Ka3b3 Qc5xb5+
 91.Kb3c2 e1N+
 *


Cheers,

Edit: Both set ups were using polyglot
One that does not live to serve, does not deserve to live.
matematiko
 
Posts: 219
Joined: 07 Dec 2008, 17:11
Location: Texas

Re: Weird game..worth analysing!!!!

Postby H.G.Muller » 06 Mar 2010, 23:55

I would say the most likely explanation is that the promotion was not properly relayed to WB by the ICS emulator, so WinBoard assumed it was promotion to Queen. Hard to say without seeing what position WB was displaying when it made the claim.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Weird game..worth analysing!!!!

Postby matematiko » 08 Mar 2010, 15:01

Confirmed, the culprit is my emulator.

Every move is evaluated twice. First when the move is received from WinBoard and second when the move is braodcast by ICS server (POGO or Yahoo in this case).

The problem with pronotions is that my emulator dont know what the pawn was promoted to, so it assumes it was a quen promotion, by the time it receives the coorect piece promotion is too late.

Thanks for looking, I guess I have a weekend project in my hands.

Cheers,
One that does not live to serve, does not deserve to live.
matematiko
 
Posts: 219
Joined: 07 Dec 2008, 17:11
Location: Texas

Re: Weird game..worth analysing!!!!

Postby matematiko » 14 Aug 2012, 02:41

I have learn few things since the last post two years ago. But anyway, that is another story. Today I played a game with WinBoard and no engine of any kind. As usual, I am using my infamous ICS emulator and playing in Yahoo Games.WinBoard was blacks and my other ID was whites using Yahoo's standard java interface and playing also, logically without engine. Whites players makes stupid moves all with the whole purpose to allow blacks player to make the last move in question in this post.

The last move as the picture and the debug file will show is a pawn promotion, I am not using an engine, the option "Always Queen" it is un-ticked and a promotion to knight will be a combination of promotion to knight/checkmate. But viola, WinBoard promotes to queen without my permission, not "Piece Selection" windows pops up. Since the purpose of the silly game was accomplished, I ended the game with whites resigning.

The reason I was experimenting with this is because lot of my friends keep telling me that WinBoard promotes to queen always and the engine freezes when the engine promotes knight, and I keep telling them to un-tick "Always Queen", and few told me they did, but since this happens, what? Every two thousand games or so, it was always hard to follow up, until today a good friend (XsupremeX by the way) told me that this has been an ongoing issue for years but since it happens only every three blue moons nobody has make much noise about it. I do not think my ICS emulator has anything to do with this, but very well might be an ICS only issue.

Image

Not sure why the image is not showing, the link is:
http://postimage.org/image/qmldp9cqr/

Code: Select all
recognized 'normal' (-1) as variant normal
WinBoard 4.6.2
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
<ICS: Welcome
ics input 0, castling = 7 0 4 7 0 4
<ICS: to YaY 3.2.3 (beta) Ultimate Flash Edition!!\012\015YaY is a fork of YtoICS (by Chris Howie a.k.a. crazycomputers).\012\015Lead Programmer: matematiko\012\015Programmer, brain-storm-master, analytical genius and beta tester: dene\012\015Flash server protocol implementation by: matematiko and zappa_engine\012\015Fast time based on style 99 by zappa_engine\012\015For a list of commands available in YaY 3.2.3 (beta) Ultimate Flash Edition!, enter the command "commands", without the quotes (").\012\015For a list of variables, enter the command "variables", without the quotes (").\012\015-------- or --------\012\015right click in this window, doing this will show most of the commands and variables.\012\015
ics input 0, castling = 7 0 4 7 0 4
<ICS: You were logged in to Advanced Lounge as: maternatiko\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
>ICS: alias $ @\015\012$set interface WinBoard 4.6.2\015\012$iset startpos 1\015\012$iset ms 1\015\012$iset seekremove 1\015\012$set seek 1\015\012$iset nohighlight 1\015\012$iset lock 1\015\012$style 12\015\012
>ICS: set width 186\015\012
<ICS: alias: Command not found.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: No such variable name seek.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: Client option games_common_sound set to 1.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: Client option prowler_g set to 0.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: Client option games_common_profanity set to 2.\012\015fics% Client option games_common_hidestar set to .\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: No such variable name width.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: garrick47 (1484) has invited you to take a seat at table 23:\012\015Timer: 4 minute(s),   Increment: 4 second(s),   Rated: Yes\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: maternatiko shouts: Using *^*~ YaY 3.2.3 (beta) Ultimate Flash Edition! with WinBoard.\012\015Shouted to 107 players.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
silence
silence
<ICS: garrick47 (1484) has invited you to take a seat at table 23:\012\015Timer: 4 minute(s),   Increment: 4 second(s),   Rated: Yes\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: miledelija@ymail.com (1597) has invited you to take a seat at table 17:\012\015Timer: 5 minute(s),   Increment: 0 second(s),   Rated: Yes\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: garrick47 (1484) has invited you to take a seat at table 23:\012\015Timer: 4 minute(s),   Increment: 4 second(s),   Rated: Yes\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: paraxxxito (3500) has invited you to take a seat at table 39:\012\015Timer: 60 minute(s),   Increment: 0 second(s),   Rated: No\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
>ICS: play 39\015\012
<ICS: This table options are:\012\015Rated game: No.\012\015Game timer: 60 minute(s).\012\015Increment per move: 0 second(s).\012\015\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: You are now observing game 39.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: Table 39: Host is now paraxxxito.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: Table 39: maternatiko (1568) sits down as black.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: Table 39: Start requests reset.\012\015fics%
ics input 0, castling = 7 0 4 7 0 4
<ICS: \012<12> rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3600 3600 1 none 0:00 none 0\012fics%
ics input 0, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3600 3600 1 none 0:00 none 0

recognized 'ICS game' (-1) as variant normal
ParseBoard says variant = 'ICS game'
recognized as normal
load 8x8 board
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr pppppppp -------- -------- -------- -----P-- PPPPP-PP RNBQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3593 3600 1 P/f2-f3 0:00 f2f3 0\012fics%
ics input 0, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppppppp -------- -------- -------- -----P-- PPPPP-PP RNBQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3593 3600 1 P/f2-f3 0:00 f2f3 0

load 8x8 board
parseboard 1, castling = 7 0 4 7 0 4
accepted move f2f3 from ICS, parse it.
moveNum = 1
board = 0-8 x 8
Move parsed to 'f3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: f7f5\015\012
<ICS: \012<12> rnbqkbnr ppppp-pp -------- -----p-- -------- -----P-- PPPPP-PP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3593 3590 2 P/f7-f5 0:00 f7f5 0\012fics%
ics input 2, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr ppppp-pp -------- -----p-- -------- -----P-- PPPPP-PP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3593 3590 2 P/f7-f5 0:00 f7f5 0

load 8x8 board
parseboard 2, castling = 7 0 4 7 0 4
accepted move f7f5 from ICS, parse it.
moveNum = 2
board = 0-8 x 8
Move parsed to 'f5 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppppp-pp -------- -----p-- -------- N----P-- PPPPP-PP R-BQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3583 3590 2 N/b1-a3 0:00 Nb1a3 0\012fics%
ics input 2, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr ppppp-pp -------- -----p-- -------- N----P-- PPPPP-PP R-BQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3583 3590 2 N/b1-a3 0:00 Nb1a3 0

load 8x8 board
parseboard 3, castling = 7 0 4 7 0 4
accepted move Nb1a3 from ICS, parse it.
moveNum = 3
board = 0-8 x 8
Move parsed to 'Na3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: f5f4\015\012
<ICS: \012<12> rnbqkbnr ppppp-pp -------- -------- -----p-- N----P-- PPPPP-PP R-BQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3583 3583 3 P/f5-f4 0:00 f5f4 0\012fics%
ics input 4, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr ppppp-pp -------- -------- -----p-- N----P-- PPPPP-PP R-BQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3583 3583 3 P/f5-f4 0:00 f5f4 0

load 8x8 board
parseboard 4, castling = 7 0 4 7 0 4
accepted move f5f4 from ICS, parse it.
moveNum = 4
board = 0-8 x 8
Move parsed to 'f4 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppppp-pp -------- -------- -----p-- -----P-- PPPPP-PP RNBQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3572 3583 3 N/a3-b1 0:00 Na3b1 0\012fics%
ics input 4, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr ppppp-pp -------- -------- -----p-- -----P-- PPPPP-PP RNBQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3572 3583 3 N/a3-b1 0:00 Na3b1 0

load 8x8 board
parseboard 5, castling = 7 0 4 7 0 4
accepted move Na3b1 from ICS, parse it.
moveNum = 5
board = 0-8 x 8
Move parsed to 'Nb1 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: e7e5\015\012
<ICS: \012<12> rnbqkbnr pppp--pp -------- ----p--- -----p-- -----P-- PPPPP-PP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3572 3578 4 P/e7-e5 0:00 e7e5 0\012fics%
ics input 6, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- ----p--- -----p-- -----P-- PPPPP-PP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3572 3578 4 P/e7-e5 0:00 e7e5 0

load 8x8 board
parseboard 6, castling = 7 0 4 7 0 4
accepted move e7e5 from ICS, parse it.
moveNum = 6
board = 0-8 x 8
Move parsed to 'e5 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr pppp--pp -------- ----p--- -----p-- N----P-- PPPPP-PP R-BQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3568 3578 4 N/b1-a3 0:00 Nb1a3 0\012fics%
ics input 6, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- ----p--- -----p-- N----P-- PPPPP-PP R-BQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3568 3578 4 N/b1-a3 0:00 Nb1a3 0

load 8x8 board
parseboard 7, castling = 7 0 4 7 0 4
accepted move Nb1a3 from ICS, parse it.
moveNum = 7
board = 0-8 x 8
Move parsed to 'Na3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: e5e4\015\012
<ICS: \012<12> rnbqkbnr pppp--pp -------- -------- ----pp-- N----P-- PPPPP-PP R-BQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3568 3570 5 P/e5-e4 0:00 e5e4 0\012fics%
ics input 8, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- -------- ----pp-- N----P-- PPPPP-PP R-BQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3568 3570 5 P/e5-e4 0:00 e5e4 0

load 8x8 board
parseboard 8, castling = 7 0 4 7 0 4
accepted move e5e4 from ICS, parse it.
moveNum = 8
board = 0-8 x 8
Move parsed to 'e4 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr pppp--pp -------- -------- ----pp-- -----P-- PPPPP-PP RNBQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3563 3570 5 N/a3-b1 0:00 Na3b1 0\012fics%
ics input 8, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- -------- ----pp-- -----P-- PPPPP-PP RNBQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3563 3570 5 N/a3-b1 0:00 Na3b1 0

load 8x8 board
parseboard 9, castling = 7 0 4 7 0 4
accepted move Na3b1 from ICS, parse it.
moveNum = 9
board = 0-8 x 8
Move parsed to 'Nb1 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: e4e3\015\012
<ICS: \012<12> rnbqkbnr pppp--pp -------- -------- -----p-- ----pP-- PPPPP-PP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3563 3567 6 P/e4-e3 0:00 e4e3 0\012fics%
ics input 10, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- -------- -----p-- ----pP-- PPPPP-PP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3563 3567 6 P/e4-e3 0:00 e4e3 0

load 8x8 board
parseboard 10, castling = 7 0 4 7 0 4
accepted move e4e3 from ICS, parse it.
moveNum = 10
board = 0-8 x 8
Move parsed to 'e3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr pppp--pp -------- -------- -----p-- N---pP-- PPPPP-PP R-BQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3516 3567 6 N/b1-a3 0:00 Nb1a3 0\012fics%
ics input 10, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- -------- -----p-- N---pP-- PPPPP-PP R-BQKBNR B -1 1 1 1 1 0 39 paraxxxito maternatiko 1 60 0 39 39 3516 3567 6 N/b1-a3 0:00 Nb1a3 0

load 8x8 board
parseboard 11, castling = 7 0 4 7 0 4
accepted move Nb1a3 from ICS, parse it.
moveNum = 11
board = 0-8 x 8
Move parsed to 'Na3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: e3d2\015\012
<ICS: \012<12> rnbqkbnr pppp--pp -------- -------- -----p-- N----P-- PPPpP-PP R-BQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3516 3563 7 P/e3-d2 0:00 e3d2 0\012fics%
ics input 12, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- -------- -----p-- N----P-- PPPpP-PP R-BQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3516 3563 7 P/e3-d2 0:00 e3d2 0

load 8x8 board
parseboard 12, castling = 7 0 4 7 0 4
accepted move e3d2 from ICS, parse it.
moveNum = 12
board = 0-8 x 8
Move parsed to 'exd2+ 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr pppp--pp -------- -------- -----p-- N----P-- PPPpPKPP R-BQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3499 3563 7 K/e1-f2 0:00 Ke1f2 0\012fics%
ics input 12, castling = 7 0 4 7 0 4
Parsing board: rnbqkbnr pppp--pp -------- -------- -----p-- N----P-- PPPpPKPP R-BQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3499 3563 7 K/e1-f2 0:00 Ke1f2 0

load 8x8 board
parseboard 13, castling = 45 45 45 7 0 4
accepted move Ke1f2 from ICS, parse it.
moveNum = 13
board = 0-8 x 8
Move parsed to 'Kf2 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: d7d5\015\012
<ICS: \012<12> rnbqkbnr ppp---pp -------- ---p---- -----p-- N----P-- PPPpPKPP R-BQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3499 3554 8 P/d7-d5 0:00 d7d5 0\012fics%
ics input 14, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- ---p---- -----p-- N----P-- PPPpPKPP R-BQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3499 3554 8 P/d7-d5 0:00 d7d5 0

load 8x8 board
parseboard 14, castling = 45 45 45 7 0 4
accepted move d7d5 from ICS, parse it.
moveNum = 14
board = 0-8 x 8
Move parsed to 'd5 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppp---pp -------- ---p---- -----p-- -----P-- PPPpPKPP RNBQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3496 3554 8 N/a3-b1 0:00 Na3b1 0\012fics%
ics input 14, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- ---p---- -----p-- -----P-- PPPpPKPP RNBQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3496 3554 8 N/a3-b1 0:00 Na3b1 0

load 8x8 board
parseboard 15, castling = 45 45 45 7 0 4
accepted move Na3b1 from ICS, parse it.
moveNum = 15
board = 0-8 x 8
Move parsed to 'Nb1 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: d5d4\015\012
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- ---p-p-- -----P-- PPPpPKPP RNBQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3496 3550 9 P/d5-d4 0:00 d5d4 0\012fics%
ics input 16, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- ---p-p-- -----P-- PPPpPKPP RNBQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3496 3550 9 P/d5-d4 0:00 d5d4 0

load 8x8 board
parseboard 16, castling = 45 45 45 7 0 4
accepted move d5d4 from ICS, parse it.
moveNum = 16
board = 0-8 x 8
Move parsed to 'd4 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- ---p-p-- N----P-- PPPpPKPP R-BQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3493 3550 9 N/b1-a3 0:00 Nb1a3 0\012fics%
ics input 16, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- ---p-p-- N----P-- PPPpPKPP R-BQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3493 3550 9 N/b1-a3 0:00 Nb1a3 0

load 8x8 board
parseboard 17, castling = 45 45 45 7 0 4
accepted move Nb1a3 from ICS, parse it.
moveNum = 17
board = 0-8 x 8
Move parsed to 'Na3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: d4d3\015\012
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- -----p-- N--p-P-- PPPpPKPP R-BQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3493 3546 10 P/d4-d3 0:00 d4d3 0\012fics%
ics input 18, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- -----p-- N--p-P-- PPPpPKPP R-BQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 38 39 3493 3546 10 P/d4-d3 0:00 d4d3 0

load 8x8 board
parseboard 18, castling = 45 45 45 7 0 4
accepted move d4d3 from ICS, parse it.
moveNum = 18
board = 0-8 x 8
Move parsed to 'd3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- -----p-- ---p-P-- PPPpPKPP RNBQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3490 3546 10 N/a3-b1 0:00 Na3b1 0\012fics%
ics input 18, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- -----p-- ---p-P-- PPPpPKPP RNBQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 38 39 3490 3546 10 N/a3-b1 0:00 Na3b1 0

load 8x8 board
parseboard 19, castling = 45 45 45 7 0 4
accepted move Na3b1 from ICS, parse it.
moveNum = 19
board = 0-8 x 8
Move parsed to 'Nb1 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (38) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: d3c2\015\012
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- -----p-- -----P-- PPppPKPP RNBQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 37 39 3490 3542 11 P/d3-c2 0:00 d3c2 0\012fics%
ics input 20, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- -----p-- -----P-- PPppPKPP RNBQ-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 37 39 3490 3542 11 P/d3-c2 0:00 d3c2 0

load 8x8 board
parseboard 20, castling = 45 45 45 7 0 4
accepted move d3c2 from ICS, parse it.
moveNum = 20
board = 0-8 x 8
Move parsed to 'dxc2 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (37) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -PppPKPP RNBQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 37 39 3486 3542 11 P/a2-a3 0:00 a2a3 0\012fics%
ics input 20, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -PppPKPP RNBQ-BNR B -1 0 0 1 1 0 39 paraxxxito maternatiko 1 60 0 37 39 3486 3542 11 P/a2-a3 0:00 a2a3 0

load 8x8 board
parseboard 21, castling = 45 45 45 7 0 4
accepted move a2a3 from ICS, parse it.
moveNum = 21
board = 0-8 x 8
Move parsed to 'a3 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (37) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
silence
>ICS: c2d1=q\015\012
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -P-pPKPP RNBq-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 28 47 3486 3542 12 P/c2-d1 0:00 c2d1 0\012fics%
ics input 22, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -P-pPKPP RNBq-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 28 47 3486 3542 12 P/c2-d1 0:00 c2d1 0

load 8x8 board
parseboard 22, castling = 45 45 45 7 0 4
accepted move c2d1 from ICS, parse it.
moveNum = 22
board = 0-8 x 8
Move parsed to 'cxd1=Q 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (28) vs. maternatiko (47) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -P-pPKPP RNBq-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 28 47 3486 3537 12 P/c2-d1 0:00 c2d1 0\012fics%
ics input 22, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -P-pPKPP RNBq-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 28 47 3486 3537 12 P/c2-d1 0:00 c2d1 0

load 8x8 board
parseboard 22, castling = 45 45 45 7 0 4
accepted move c2d1 from ICS, parse it.
moveNum = 22
board = 0-8 x 8
Move parsed to 'cxd1=Q 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (28) vs. maternatiko (47) {60 0}, gameInfo.variant = 0'
<ICS: \012<12> rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -P-pPKPP RNBq-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 28 47 3018 3537 12 P/c2-d1 0:00 c2d1 0\012fics%
ics input 22, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr ppp---pp -------- -------- -----p-- P----P-- -P-pPKPP RNBq-BNR W -1 0 0 1 1 0 39 paraxxxito maternatiko -1 60 0 28 47 3018 3537 12 P/c2-d1 0:00 c2d1 0

load 8x8 board
parseboard 22, castling = 45 45 45 7 0 4
accepted move c2d1 from ICS, parse it.
moveNum = 22
board = 0-8 x 8
Move parsed to 'cxd1=Q 0:00'
nps: w=-1, b=-1
Display title 'paraxxxito (28) vs. maternatiko (47) {60 0}, gameInfo.variant = 0'
<ICS: \012\015{Game 39 (paraxxxito vs. maternatiko) maternatiko wins} 0-1\012\015\012\015fics% Auto-autostarting...\012\015fics%
ics input 22, castling = 45 45 45 7 0 4
GameEnds(26, maternatiko wins, 0)
silence
<ICS: maternatiko (1568)[39] kibitzes: GG :)\012\015(kibitzed to 1 players)\012\015fics%
ics input 22, castling = 45 45 45 7 0 4
silence
<ICS: \012<12> rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3600 3600 1 none 0:00 none 0\012fics%
ics input 22, castling = 45 45 45 7 0 4
Parsing board: rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 39 paraxxxito maternatiko -1 60 0 39 39 3600 3600 1 none 0:00 none 0

Reset(1, 1) from gameMode 11
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
recognized 'ICS game' (-1) as variant normal
ParseBoard says variant = 'ICS game'
recognized as normal
load 8x8 board
nps: w=-1, b=-1
Display title 'paraxxxito (39) vs. maternatiko (39) {60 0}, gameInfo.variant = 0'
>ICS: exit\015\012
<ICS: Sending logout request...\012\015
ics input 0, castling = 7 0 4 7 0 4
<ICS: Table 39: maternatiko stands up.\012\015
ics input 0, castling = 7 0 4 7 0 4
<ICS: Removing game 39 from observation list.\012\015Logging you out at Mon Aug 13 19:58:03 2012.\012\015\012\015***** Thank you for using YaY 3.2.3 (beta) Ultimate Flash Edition! *****\012\015
ics input 0, castling = 7 0 4 7 0 4
<ICS:
ics input 0, castling = 7 0 4 7 0 4
Exiting: Connection closed by ICS
silence
GameEnds(28, xboard exit, 2)


Thanks for the help.

P.S. I was going to upload the PGN file but I just realize I have not set up WinBoard to save the games, sorry.
One that does not live to serve, does not deserve to live.
matematiko
 
Posts: 219
Joined: 07 Dec 2008, 17:11
Location: Texas

Re: Weird game..worth analysing!!!!

Postby H.G.Muller » 15 Aug 2012, 09:33

Probably the option -sweepPromotions is in force. Did the text 'to under-promote, pull pawn backwards' appear in the message field when you grabbed the Pawn?

This cannot have anything to do with engines freezing, as it is purely a method for entering user moves. Engines also don't get a promtion popup with -sweepPromotions false. The setting of -alwaysPromoteToQueen should also not effect engine moves. The engine sends promotion moves as text, including a promotion character. If an underpromotion is not understood, it must either be a bug in the WinBoard move parser, or the engine sends a non-compliant move format that is not understood. Of course disagreement on the position between WB and the engine can lead to later 'freezing' of the engine, because it refuses the move WinBoard accepted as illegal (e.g. the engine promoted to a checking Knight, the opponent does a move that doesn't resolve the check, because he thinks there is no check), or WinBoard refuses the engine's move with the Knight. Or the ICS refuses the move. All these situations can lead to stagnation of game play, GUI, engine or ICS all waiting for each other to repent and change their mind.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Weird game..worth analysing!!!!

Postby matematiko » 15 Aug 2012, 23:30

Mr. Muller,

The -sweepPromotions did the job when playing without engines, I can not say if this will work for engines or not.

I do want to get a winboard debug file ( and perhaps a polyglot debug file) and get to the bottom of this. Find out if the move parser is at fault or the engine(s) is(are) doing something wrong.

It will be unpractical to play and pray ( play and pray he he he he) that the engines will eventually play a game with a knight promotion. So, what I am going to do is create a stupid.bin book that will make these silly moves and stop book moves just right before the engine sends the move or more accurately move/promotion text string to WinBoard.

I am taking a five days trip to my home country (Mexico), with a little luck I will have these log files tomorrow, but if not I will post them here in a about a week from now.

Best regards and thanks again for taking the time to look into this.

matematiko
One that does not live to serve, does not deserve to live.
matematiko
 
Posts: 219
Joined: 07 Dec 2008, 17:11
Location: Texas

Re: Weird game..worth analysing!!!!

Postby H.G.Muller » 16 Aug 2012, 10:54

I can assure you that -sweepPromotions has no effect whatsoever on GUI-engine communication. It only affects whether the promotion popup appears on moves enetered by the user with the mouse. Your approach to find out what exactly happens seems a good one.

Further note that -sweepPromotions true is the recommended mode for running WinBoard, and that in future versions the promotion popup might be removed completely.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Weird game..worth analysing!!!!

Postby matematiko » 16 Aug 2012, 13:17

Mr. Muller,

I think I found the problem. At the moment this is just theory since I have not done the experiment I mentioned earlier, but while reading your response, it daunted on me that Yahoo sends the pawn move and the desired promoted piece in two separate opcodes ( or commands if you wish). So, in other words, for a period of time, while the opponent (in Yahoo the opponent is expected to be human all the time) is thinking and manually selecting the promoted piece, the board is supposed to shown a pawn in the last rank, then later show the selected piece (queen, rook, etc.) Do you think that this could be the problem?

I do not know how WinBoard communicates with real ICS servers, but I assume that is the same as my emulator, every move takes two steps. Let me explain with a fictitious scenario (but very possible to be the real problem). WinBoard receives the move and promotion to knight from the engine, it does this flawlessly and sends the move/promotion command to ICS (my emulator) which in turn sends the corresponding opcodes to Yahoo. Yahoo validates the moves and accepts it or rejects it ( I assume real ICS do the same), Note: The move legality validation is made by Yahoo Java applet when playing normally as human, and by my emulator when this one is in use, in reality Yahoo server never does any validation, which I think is not the case in ICS. Anyways, back to the scenario: after Yahoo receives the move/promotion, Yahoo broadcasts this move/promotion back to the player that made the move, to the opponent and to every observer (if any). Like I mentioned earlier, Yahoo ( and therefor my emulator) does this in two steps, first the pawn move to the last rank, and then the desired piece for promotion. I believe that is here when WinBoard is choking, not because there is anything wrong with WinBoard, but because the way the move/promotion was handled by my emulator/Yahoo.

If this is the problem, can you elaborate more on how WinBoard is expecting the ICS to send the move/promotion string? I think I can extract this from the source code of my emulator, after all it works flawlessly with queen promotions, but I will love to have your input.

Best regards,
One that does not live to serve, does not deserve to live.
matematiko
 
Posts: 219
Joined: 07 Dec 2008, 17:11
Location: Texas

Re: Weird game..worth analysing!!!!

Postby H.G.Muller » 16 Aug 2012, 13:38

WinBoard sends moves to the ICS as a simple text line. For promotions, the = sign is mandatory. For the rest the ICS is very forgiving, and accepts almost anything. But WinBoard uses long algebraic, like

a7a8=N

The ICS doesn't send isolated moves; it sends complete boards. This is a legacy from the time when there did not exist any graphical clients, and people used text-based clients like telnet to connect to ICS. Then after every move (including their own moves) a new board had to be 'drawn' by printing ascii characters on their terminal screen. Depending on how capable your text interface was, there were several 'board styles' to make it look good. Later a 'style 12' was added for the benefit of graphical clients. This style packs all info (board position, clocks, side to move, castling rights, e.p. rights, last move in SAN as well as long algebraic, player names, game number, etc.) on a single line of text.

So the proper method would be to let the ICS simulator wait until it knows what the Pawn promotes to, and then send a new board with the promotion piece on it, as well as properly indicated in the last SAN move. (Peculiarly, ICS never put a promotion suffix on the long-algebraic move.) I don't think you can send WinBoard first a faulty or invalid board (with wrong promotion piece, or a last-rank Pawn), and then send it a second board to 'correct' it. Likely it would ignore that second board. (After all, it would have already started the engine after receiving the first board, so it would be far from trivial to correct the situation.)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Weird game..worth analysing!!!!

Postby matematiko » 16 Aug 2012, 21:15

Thank you very much Mr. Muller, this is valuable information.

I will re-code after my trip.

Since my weekend starts today, I will wish you and everyone a nice weekend.

matematiko
One that does not live to serve, does not deserve to live.
matematiko
 
Posts: 219
Joined: 07 Dec 2008, 17:11
Location: Texas


Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 12 guests