News:

Thx to our VIP donor/subscribers in 2010 cheers! .....webrunner, stog, spielberg, jackdaddy, adrian, BallardBG, diane , anononymous , Zorba , sixty_something, ah_clem , kapiti , Drake ,aviator & r_monk

Main Menu

how to program a cheating bg bot/cheating dice generator

Started by yappay, September 07, 2012, 03:32:43 AM

Previous topic - Next topic

yappay

after reading a few posts i now know that fibs bots/dice generator do not cheat.
its all about misperception of own vs bot luck and not fully getting that bots are playing on world class and above level. :yes:

nevertheless i got quite interested in the topic in general and would like to discuss 2 questions:

1. how would you program a cheating bg bot with a cheating dice generator (no coding just aspects of the program)?
2. would it be possible to prove that the bot is cheating just by analyzing the games (not the programming code)?

if you for example think about the distribution of rolls - a cheating program could for e.g. have a sub routine like:
let the player dance and if possible use rolls which even out the overall distribution of rolls. :thumbsup2:

another thing could be to introduce a lot of great equity swings to make playing with the bots just a lit bit more exiting than real live

any recommendations, ideas or aspects?





ah_clem

1) Just make the dice dependent on the position.  The bots already know the equity of all possible rolls, so just let it pick based on that criteria.  Right now, all the bots have their dice algorithm independent of the rest of the program.  Changing it wouldn't be very difficult, but that's not the behavior the bot programmers want.

2) Assuming the bot has a manual dice mode, this would be easy.  Open up two instances of the program and have them play against one another with one controlling the dice and the other in manual dice mode.  If the bot controlling the dice wins more often, you've caught it cheating.

It's interesting that none of the hundreds of people accusing gnu of cheating are willing to conduct this simple experiment.

yappay

2. thats a good idea to test the bot with another bot - but you could just implement a anti-cheat algorithm that detects that you try to cheat the bot with another bot (as i heard a lot of backgammon platforms already do this) and don't let you finish the test.

So this would not seem to work if accordingly framed and programed.

Any other suggestions?

by the way does the fibs platform detects if somebody is using a bot in order to cheat ?

yappay

In order to make a cheating bot not to obvious you could use just a normal (almost) unbiased dice generator and would let the fake generator only kick in when required.

yappay

another way to avoid that you can prove that the a bot is cheating by playing the suspect with another bot could be to detect a bot/bot testing (see above) and then stop cheating in order not get caught.

diane

Quote from: ah_clem on September 07, 2012, 12:53:35 PM
2) Assuming the bot has a manual dice mode, this would be easy.  Open up two instances of the program and have them play against one another with one controlling the dice and the other in manual dice mode.  If the bot controlling the dice wins more often, you've caught it cheating.

It's interesting that none of the hundreds of people accusing gnu of cheating are willing to conduct this simple experiment.

Gnu has this mode..one of the things I did when I started playing and felt the bots were 'cheating' was to roll the dice manually [for myself and the bot], and enter those rolls. It made no difference to how hard my backside got kicked..

Anyhoo - I am pleased you intend to do something that will give an indication of whether they cheat or not..I suggest 25 point matches, and about a hundred of them should start to overcome statistics.

Let us know your progress and please post match files so we can all see them..

thanks!  :cool:
Never give up on the things that make you smile

yappay

i guess u got something wrong diane - ah_clem recommended this bot/bot test and i on the other hand dont see a point in such a test, since just looking a little further i would have addressed this issue in my cheating bot programming.

the manual dice entry testing of gnu on the other hand would only test gnu - but how about other programs especially online bg platforms?

For me the questions remains open - how could you possibly prove that a well programed cheating bot is actually cheating?

Its interesting that as often as the cheating topic has been adressed this issue has never really been discussed. as mentioned i am talking about a well programed cheater which addresses e.g. distribution of rolls (therefor massive number squeezing would not prove anything) or anti bot/bot testing routines (as described above - detecting the test and canceling the game or stop cheating).

-> one possibility i see could be a distribution/structure testing of selected events for instants of "dancing events".
    eventually u see that you get extraordinary many doubles when dancing or similar facts.

diane

oops sorry yes..I did mistake the posters there..

You could still try it though - the point being..if you see gnu is not cheating - then you begin to understand it is your 'pattern seeking' human perceptions that are flawed, not that the bots are in any way cheating.

For me the question always comes back to WHY. Why would anyone go to all these elaborate measures you describe, just to annoy you?

It isnt for profit, it isnt for gain of any kind - and it is a LOT of work to set up and sustained effort to maintain.

Now - which bots are you talking about? All of them...well..if they all beat you, either they are ALL cheating - or you aint that good..  If it is the bots on fibs - I shall point out once more - they cannot, simply and completely, cannot cheat, end of it.

They appear to FIBs the server to be a player, just like you. They request a roll, just like you..they play it - better than you. Because they play better, the analysis of their games will show them to be have been lucky - most of the time..if they lose and get a poor luck rating, trust me, they were really really unlucky.

It is possible bots on other servers cheat - I dont play there so cant comment...but, once you accept once and for all, that bots on FIBs cannot cheat, and then see how often they win, how lucky they appear, and how miraculous it all looks to a mere human...then you can begin to accept that most of the others are just doing the same thing.
Never give up on the things that make you smile

yappay

dear diane thx a lot for the input but please don't bring this treat on a level we already had been so many times. Please don't discuss again gnu ,the "why question", not understanding duplication/diversification, all-over distribution analysis or any the like. this path never brought light into the issue.

is it possible to prove that a well programmed bot is cheating?
which counter measures could be taking by a programer of a cheating bot?

to come back to analysing selected situations like dancing, one could just analyze dancing extremes like e.g. how many times do u dance on a certain prime (1,2,3,4,6). Just an example - my last 4  5-point games (just the last ones not any special selected ones) with a bot on fibs let me dance

- 3 times on a 1-prime (I through a 6-6)
- 2 times on a 2-prime
- furthermore i got in this games 4 (including the above mentioned ones) useless (could not enter, was blocked or game already lost) 6-6 rolls
- none of the above happened to the bot.

Do u guys thinks that analyzing only the dancing could prove anything?
how would you approach that? or do u have different ideas?





yappay

Did just another set of 4 5-pointers against a bot and counted the different doubles and distinguished between useful and non-usefull doubles.
Have to admit the definition of useful and not usefull is not sharp - actually i just evaluated each double on the fly. furthermore the sample size is by no means large enough to be of any statistical value. But isn't it just that - that you can drop in at any time analyzing the bot and u find weird things. like many mentioned before over and over again.

However the bot and me had exactly each 49 double rolls. out of this 49 double rolls i had 20 useless while the bot had only 13 useless double rolls.

yappay

here is the last dancing counting - counting only the dances where either only 1,2 or 3 point are closed (low probability to not enter):
In the last 12 5-pointer matches against a fibs bot - the following dancing happened:

I danced:
1 point  closed: 3 times
2 points closed: 4 times
3 points closed: 8 times

the bot danced:
1 point  closed: 0 times
2 points closed: 1 times
3 points closed: 0 times

still not at all of statistical evidence but gimme a break

by the way the latest useful/useless counting for the latest 4 5-point matches showed an almost even distribution of useful/useless rolls.
but all-over 25% more doubles for the bot.

dorbel

An online bot can only cheat you if it can control the dice rolls that it receives, either by getting its choice or by seeing its next roll in advance and altering its play accordingly. We can dismiss the second of these right away by simply analysing the match afterwards and seeing if the bot has in any instance made what would normally be a sub-optimal play. They never do. A GammonBot will always make a Gnu 2-ply play.
So, does it get its choice? The bot operators (Tom and inim) state that there is no function built in to request a good roll. The server operator (Patti) states that even if they could, Fibs has no capability to respond to such a request. The bot, like you, gets its next roll on the cab rank principle.
A third possibility of course is that the server is watching the match, sees when the bot needs a good roll and provides it. This would be feasible if Fibs had an analytical function to distinguish betwen a good roll and a bad one, but it doesn't! It is effectively a moron.
A fourth possibility is that Patti, Tom and inim are colluding to both cheat their players and lie about it. We can't of course entirely exclude this possibility, any more than we can exclude the chance that the next apple to fall off the tree in the garden will go up instead of down, but it isn't worth spending much time considering it.

boomslang

Quote from: yappay on September 08, 2012, 11:26:50 AM

I danced:
1 point  closed: 3 times
2 points closed: 4 times
3 points closed: 8 times

the bot danced:
1 point  closed: 0 times
2 points closed: 1 times
3 points closed: 0 times

still not at all of statistical evidence but gimme a break



o) Regarding your dancing data:  dancing is not 'unlucky' per se. Second, looking at the results I reckon that you spent more time on the bar than the bot. If you want to make a statement about biased rolls while on the bar, please also provide counts on how often you and the bot did NOT dance for each situation.


o) As already mentioned by many:  the bots on FIBS dont cheat with the dice because they have no control over them.  They could 'cheat' by offering a normal resign when a gammon/backgammon is possible, but none of the veteran bots on FIBS do so.


o) If you want to find out if the GNUbg stand alone software cheats, you could use the empirical approach described above, but you could also learn the C/C++ language, download GNUbg's source code, check for cheats (which you will not find) and subsequently compile it yourself.  But please don't bring up that the compiler might be programmed to produce cheating executables!


o) Don't spend so much time on trying to find out if the bots cheat or not.  Put your energy in improving your game.  It is my experience that a persons distrust in bots' fair play is negatively correlated with their understanding of the game.  (For example, mentioning that you rolled a 66 when the game was already lost tells me that you have a contaminated understanding of luck: your 66 was equally 'unlucky' as any other roll because none of them could influence the outcome of the game. )

yappay

the challenge for me is that i would love to have some handy routine which doesn't involve to many data. its always better to have more and more data and more and more aspect considered. I still assume that the dancing measurement - measuring just the extremes (dancing with 1,2, and 3 closed plots) should be sufficient to proof dice (if the sample size would be large enough).

i guess u don't get my point with the useless doubles. useless doubles could be an indication that a bot is trying to even out an uneven distribution of double rolls - u get my point or should i elaborate in more detail?

a 6-6 roll has the same probability then any other roll is a quite trivial statement - so let us leave that behind us and think a lil further. And buy the way - if nobody mines - can we also stop talking about gnu and that boring story about the source code we heard so many times

One aspect worth to be elaborated  could be for instants - when is a double roll to be defined as useless? here some thoughts.
Generally a double is a fine thing but under certain circumstances it is just like a regular roll or even worth. examples:

- you are rolling a double but the game is already lost.
- you are rolling a double but you can not enter from the bar
- you are rolling a double which distroys your prime
- you are rolling a double which creates an unwanted blot




diane

Quote from: yappay on September 08, 2012, 04:35:39 PM
the challenge for me is that i would love to have some handy routine which doesn't involve to many data.

i guess u don't get my point with the useless doubles. useless doubles could be an indication that a bot is trying to even out an uneven distribution of double rolls - u get my point or should i elaborate in more detail?

And buy the way - if nobody mines - can we also stop talking about gnu and that boring story about the source code we heard so many times

Well..at least he doesn't call you two 'dear'...

When someone whining about bots throws out any or all of these three lines..'I want to do this without actually doing anything'...'You don't understand me' [which actually means, they aren't listening to you], and 'stop telling me stuff that doesn't fit with my conspiracy theory'..I am round about done taking any interest or notice, or wasting my time answering  ;)

I now consider the matter closed.
Never give up on the things that make you smile

yappay

dear diane

when ever this topic comes up you are not getting tired to state the same old aspects:

- conspiracy
- whining
- gnu source code
- perception of luck
- duplication/diversification
- distribution

many people know them or can look them up in old treats - anything new?

dorbel

Nothing new, but diane's well made points are ignored by you because they don't fit your theories. Why bother to use a forum if you aren't interested in what others say? You may as well talk to yourself. Oh........

yappay

hi dorbel -i actually haven't stated any theories. would you mine to elaborate what u consider my theories?



yappay

in this case u should not drop in - is bad forum behavior.

stog


Tom

Quote from: yappay on September 07, 2012, 03:32:43 AM
after reading a few posts i now know that fibs bots/dice generator do not cheat.
its all about misperception of own vs bot luck and not fully getting that bots are playing on world class and above level. :yes:
It is not Luck it is the perception of luck, take a 1600 player and let them face a 2000+ player (bot or not) and you will
see that the stronger player makes moves that yield the largest number of useful rolls on the next roll.

ie. They will have blots that can only be hit by one roll by the opponent but will be able to use 3-4  different die on their next turn.
So their odds of being hit are low but odds of continuing to build a prime (for example) are 20% or better.

Do THAT consistently and YOU are a 2000 player!

Quote from: yappay on September 07, 2012, 03:32:43 AM
1. how would you program a cheating bg bot with a cheating dice generator (no coding just aspects of the program)?
2. would it be possible to prove that the bot is cheating just by analyzing the games (not the programming code)?

To what end? I do not know of any online BG servers where a player can select their rolls,

You have a better chance of eliminating rolls face to face bitching that your opponent did not roll right,
the cup was too level, the die did not roll far enough, oh wait is that die cocked next to that checker?

Tom

dorbel

A very common misconception is that the Fibs program can see what roll is best (or worst) on the next turn. It can't. It has no function to evaluate equity for a dice roll, hence it can't select a good or bad number. Such a function only existed in a fairly primitive form 20 years ago anyway (Jellyfish) and Marvin certainly didn't incorporate that into Fibs! I suppose that incorporating such a function now is technically possible, but I can't somehow see Patti sitting up late figuring out how to do it!