[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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 )
> /* kauder paradox */
> 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
> /* kauder paradox */
> 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.
--
Jim Segrave address@hidden