bug-gnubg
[Top][All Lists]

## Re: [Bug-gnubg] Beavers and analysis

 From: Jim Segrave Subject: Re: [Bug-gnubg] Beavers and analysis Date: Thu, 24 Jul 2003 20:09:34 +0200 User-agent: Mutt/1.2.5.1i

```On Thu 24 Jul 2003 (15:53 +0000), Joern Thyssen wrote:
> On Thu, Jul 24, 2003 at 04:54:02PM +0200, Jim Segrave wrote
> > N+3 (the take) is shared with N+2. I would think it the take/pass
> >     is the same as any other take/pass decision except that if you
> >     take, you don't own the cube but you are on roll. At the moment,
> >     the common part with the double doesn't give you any way to see if
> >     you are sharing data with a double, a beaver or a raccoon. Maybe
> >     this is where we need a second marker in the cubedecisiondata
> >     struct - it would also address potential problems with the
> >     doubling decision - say type MOVE_DOUBLE (ordinary double),
> >     MOVE_BEAVER (beaver by new cube owner), MOVE_RACOON (redouble
> >     by player on roll but not cube owner). It would be easy enough to
> >     add if it makes analysis easier
>
> I think the following logic should cover all situations:
>
> (I assume all equities are calculated for the player on roll)

But the part I don't know, is how the evaluation function factors in
being on roll and cube ownership. Does it simply do a w/wg/wbg/lg/lbg
evaluation of the position for player on roll and then manipulate the
results to factor in cube ownership?

> Double:
> =======
>
> Normal double:
> --------------
>
> We need equities for ND, DT, and DP:
>
> if ( DT >= ND && DP >= ND )
>    if ( DT >= DP )
>       double, pass (DP)
>    else
>       double, take (DT)
> else
>    no double (either too good or not good enough) (ND)
>
>
>
> Beaver:
> -------
>
> we need equities for "take", "pass", and "beaver" which happens to be
> exactly DT, DP, and 2 * DT.
>
> if ( DT >= DP )
>    pass
> else
>    if( DT <= 0 )
>       beaver
>    else
>       take
>
>
> Raccoon:
> --------
>
> We need equities for "pass", "raccoon", and "take", which is -DP, 2 *
> DT, and DT.
>
> if ( DT <= DP )
>    pass
> else
>    if ( DT >= 0 )
>       raccoon
>    else
>       take
>
>
> Take or Drop:
> =============
>
> Same logic as Beaver above
>
> The equities needed for all decisions are the same so they can all share
> the same struct with equities.
>
> The GUI and exports has to be changed to display different widgets for
> each type of decision:
>
> Normal double:
>
> No double
> Double, Take
> Double, pass
>
> Beaver:
>
> Take
> Pass
> Beaver
>
> Raccoon:
>
> Take
> Pass
> Racoon
>
>
> Take/drop:
> Take
> Pass
> (Beaver???)

That all looks reasonable to me. Arranging the windows and exports to
reflect the various options looks not too difficult.

--