Last September, I had posted similar suggestions at
bug-gnubg list. Here is a link to my second article in
reply to Joseph Heled. It's a litter better thought out
than my first one, which you can still read if you wish
by scrolling down to it, at the end of the same post.
https://lists.gnu.org/archive/html/bug-gnubg/2022-09/msg00007.html
I'll just recap here the main ideas for adding features
to allow people to experiment with "what if" scenarios,
in order to explore and discover for themselves things
about checker/cube skills and luck, instead of having
to take other people's and/or bots' word for those.
The easiest and best way would be to add a new entry
to the selection list of preset player levels, "mutant" (or
such), with the advanced settings to include a setting
for "random" play, similar to the "noise levels" setting.
Then in the "eval.c" module, a few lines of code will be
added for cube and for checker decisions.
For cube, after determining what kind of cube access
the "mutant" has, it will flip a coin and make a random
cube decision. Nothing more complicated than that.
For checker, after populating the legal moves array, the
"mutant" will randomly pick an entry from the array and
play it. Nothing more complicated than that.
With these selections, we can do random rollouts that
I've been talking about for some years now, explaining
why/how they would allow us to verify the accuracy of
the "biased" rollouts done by the currently existing bots.
After this, other features can be added to do even more
complicated cobinations of experiments, just to satisfy
our curiosities and/or to improve future bots.
For cube, in the above new "advanced settings" window,
users can enter arbitrary values for winning chances to
be used a cutoff points for doubling, taking, beavering,
dropping, etc. Alternatively, many "cubing points tables"
can be used similar to match equity tables, for example.
Then in the "eval.c", after calculating equities/winning
chances, a few lines can be added for the "mutant" to
pick a cube decision from a "cubing points table/array".
The rest of the existing code will not be effected at all.
For checker, I don't know how helpful it would be to use
similar checker decisions settings, but perhaps we can
come up with some creative ideas later on.
If we do, then in the eval.c, after populating the legal
moves array, a few lines can be added for the "mutant"
to play an entry from the array accordingly. Again, the
rest of the existing code will not be effected at all.
All the above feature suggestions can be implemented
in Noo-BG with trivial effort since almost all of the code
needed already exist in there. It may be more difficult
to add the same features to Ex-Gee, BG-bzzt, etc. but I
think it would be worth the effort since they would add
usability and value to those bots also.
MK
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)