playing bots against your own skill level

When you play bots of your own skill level, in my case, its 25 k and up and can only defeat them about 1 out of three times its pretty sad. ---- This is not complaining of, or there is anything wrong with the bots – just a comment on my own playing skill. iam finding playing the bots semi-rewarding in that I know that luck is out of the picture, and I lose because I have lost, not the bot actually winning it from me-- or maybe that’s the meds speaking right now well back to playing maybe a few real people games before bed

You played four bot games in total and won two of those, that seems reasonable.

Edit: actually you were winning three but you resigned one game.

5 Likes

I think random-move-nixbot was down for a while, but I restarted it now in case you want to try challenging it to a 9x9 game. It’s really, really terrible at Go. You can probably give it a 10-stone handicap and still win, and this might help you learn how to seal off boundaries and properly finish a game.

Like lots of other people have said, if you want to win, I recommend spending longer than 1 second thinking about each move. You can make it a correspondence game and take as much time as you need; the bot will still usually play very quickly.

3 Likes

Thanks, I needed this tip. I think I’ve tried to set up a game like that before but the bot always rejected my settings and I get annoyed trying to recreate the game only to discover that another aspect of the settings is wrong. But, I did it this time.

2 Likes

@dokbohm my bot is still waiting for a game with you!

It was kind of buggy before and tenderd to rage-quit, but I fixed it up just for you and it’s been working “perfectly” since then, losing almost every game with grace.

2 Likes

well??? thanks guess i bot i can beat every time hummmmmmmmm i have to think about that – but thanks for the input

Well, why don’t you try playing my bot?

it is an idea one loser playing another loser – hummmmm sounds appealing, doesn’t it ?

What I hope is appealing about it is that you would be winning the games!

2 Likes

… at least 50% of the time, on average :wink:

Random play is far from the worst you can do in Go - I can think of strategies that are dramatically worse.

2 Likes

There are multiple different types of “random”, depending on the selection of choices and terminal conditions.

A “random bot” most people think is actually “always play a move” + “selections of legal moves in random” + “terminal condition of not self-atar/self-filling”. The latter condition is extremely powerful and would drastically win against a condition like “always play a move”.

In “true” random fashion for picking a move, they would include pass, and any board position, legal or illegal, occupy or non-occupy (assuming an illegal or occupied move like a pass). And this “always play a move” condition will lose against the above-mentioned three conditions with extremely high probability, almost guaranteeing lose. But still, this “just play a move” condition will “win” almost 100% of the time against an “opponent” that has 0 condition (always play pass, basically blank, the true grounding condition).

And in terms of “winning”, it is also not true that more conditions lead to a higher winning chance, it is possible to devise very complicated conditions, such as a designed “play-to-lose” bot, which deliberately moves towards lower scores even against a “play-a-move” condition, thus has a winning chance that falls between 0 condition, and play-a-move (even specify losing probability by design)

well what you say does make sense you sound like a very educated person - but my feeble old mind still doesn’t understand the concept of playing another weak player even if it is a bot – i see the point of your discussion on why you designed it that way and were fors – by still why build a bot to lose - i sure there is a point here iam missing but----- thanks for the explanation of the how you did it

I specifically used a quote for “random bot”, because I am not talking or discussing about bots (I was replying @FritzS about random play, which is poorly defined), but pure theoretical and mathematically defining “strategy” in a general framework. A “random bot” that you can interact with here is simply a set of instructions/conditions that are simple enough for statistical analysis.

I’ve made a post years ago about treating Go games as a high-dimensional lattice walk (route), this is just the extension and work I’ve been working on since. Which I’ve discovered that we need to separate “game rules” (defining legal routes), “conditions/instructions” (probabilities of taking which routes) and “prior knowledge about opponents”(reactions about knowing opponents’ probabilities of routes) in order for any pure theoretical framework to function and have a base for discussion. And by doing so we can find some very fundamental concepts like “playing a random move” is not really that simple at all (because, as I explained in my previous post, just-playing-a-move, and playing-a-legal-move are different, since the simpler just-play-a-move allows random walk on the lattice has a uniform distribution of probabilities on all intersections, but the latter shrink and limit the probabilities to only legal move options, and disallow self-filling and self-atari, making the path to terminal conditions even faster)

The takeaway if you will, is that your idea of a “game-plan” or conditions/instructions you want to follow (like you want to avoid capture play in x amount of moves) reduce and limit the path you can take in the total possible games, and compare to a “random bot” of various known conditions, you should have a very high chance of winning statistically with different random strategies (regardless of the validity and usefulness of these strategies, they can still win game against something).

My bot uses GnuGo to decide when to pass or resign so that helps it finish games properly and does not just get banned for stalling.

It’s still really bad. Just knowing how to capture stones should put you far above it.

Your implementations simply added more conditions and terminal positions (or replaced the simpler ones to avoid self-atari, and always count liberties >=2 ), and as I mentioned previously, don’t always “increase” the winning chance. You can easily envision a situation where gnugo missed yose tesuji (probably quite a lot), and pass early for opponents to “exploit” (even a play-a-move condition has non-zero probability to find it, regardless of how slim, they are non-zero).

In fact, a pure random move bot always has a chance to beat pros or the strongest AIs, or even create the “perfect game” by chance alone (by definition, it has to include them). The transitional probabilities play a more crucial rule then conditions themselves. (like in thermal dynamics, there is a chance an egg can “uncrack” itself and reassemble, but the integral of all probable paths/combinations makes observing these events negligible, but still non-zero)

If I remember correctly, idiotbot on KGS plays randomly, except that it sees ataris (of both players). It’s still bad enough so that it loses against every human.

A always-extends-when-atari condition is probably one of the easiest conditions to exploit. As the third part of the equation in defining a game is prior/meta knowledge about opponents

Capturing by itself is a shortcut of transition from one state to another, sometimes a huge jump. And a guaranteed path of extending atari instead of probability (regardless of how they were sampled) creates another guarantee path that leads to terminal conditions, since they would inevitably lead to one side having significantly more stones on the board.

In practice, a human opponent can easily find the bot’s behavior, and set up a favorable ladder condition when random moves create a cut, and then lead the atari-extend run its course. And as a result, it has more predictable winning than a uniformly random process.