bug-gnubg
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-gnubg] Import / Illegal move bug


From: Christian Anthon
Subject: Re: [Bug-gnubg] Import / Illegal move bug
Date: Fri, 8 Jan 2010 10:48:56 +0100

I'll take a look at somepoint....

Christian.

On Mon, Dec 28, 2009 at 8:57 AM, Michael Petch <address@hidden> wrote:
>
> Happy Holidays All!
>
> I have been doing a dice study on one of the sites and use Gnubg to parse
> files using python. The site outputs MAT files – unfortunately because of
> client bugs there are a good percentage of MAT files with Invalid moves
> (This isn’t Gnubg’s fault). I had a suspicion that Gnubg was importing
> matches with Illegal moves but Gnubg didn’t identify some moves as invalid.
> After some experimentation and sanity checks in my python code, I was able
> to identify a bug during import.
>
> During Import (import.c) a Call is made to ApplyMoves from IsValidMove.
> Unfortunately ApplyMoves checks that each individual move is valid, but
> doesn’t identify incomplete/partial moves as illegal. For example lets say I
> have a position where this is a legal move from a mat file:
>
> 5)    33: 6/3 6/3 8/5 8/5
>
> All 4 of the moves are legal, and IsValidMove will return 1 (True).
> Unfortunately ApplyMove also sees this as valid:
>
> 5)    33: 6/3 6/3 8/5
> 5)    33: 6/3 6/3
> 5)    33: 6/3
> 5)    33:
>
> All of these will return true when run through IsValidMove. The problem is
> ISValidTrue doesn’t check if the entire set of moves makes sense (Partial
> moves are not seen as illegal). This isn’t specific to doubles.
>
> I’m not sure, but I think we should consider calling GenerateMoves (or a
> function that is similar) and then compare the imported moves with the
> generated valid move list. GenerateMoves of course doesn’t necessarily
> consider partial moves as valid. This should replace the current code inside
> of import.c’s IsValidMove function.
>
> Michael
> _______________________________________________
> Bug-gnubg mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/bug-gnubg
>
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]