Option to randomize handicap stones (with poll)

I recently posted a randomization program in TypeScript.

Here's an example (19 x 19, 6 stones) with explanations on how the algorithm works:
Subdivide the board into small rectangles:

 . a b c d e f g h i j k l m n o p q r s
 1 + + + + + + + + + + + + + + + + + + +
 2 + + + + + + + + + + + + + + + + + + +
 3 + + # # # + % % % + # # # + % % % + +
 4 + + # # # + % % % + # # # + % % % + +
 5 + + + + + + + + + + + + + + + + + + +
 6 + + % % % + # # # + % % % + # # # + +
 7 + + % % % + # # # + % % % + # # # + +
 8 + + + + + + + + + + + + + + + + + + +
 9 + + # # # + % % % + # # # + % % % + +
10 + + # # # + % % % + # # # + % % % + +
11 + + # # # + % % % + # # # + % % % + +
12 + + + + + + + + + + + + + + + + + + +
13 + + % % % + # # # + % % % + # # # + +
14 + + % % % + # # # + % % % + # # # + +
15 + + + + + + + + + + + + + + + + + + +
16 + + # # # + % % % + # # # + % % % + +
17 + + # # # + % % % + # # # + % % % + +
18 + + + + + + + + + + + + + + + + + + +
19 + + + + + + + + + + + + + + + + + + +

Pick a pair of adjoining small rectangles and combine them to make
one big rectangle for each stone to be placed.

Picking a rectangle makes its neighbors half as likely to be picked.

In the following diagram, numbers are weights for placing a stone
in the next step and shown in a manner of a windmill
('v'ertical and 'h'orizontal):

   v + h     v + + h h     v + h h
   v + +     v + + + +     h h + v
   h h v     h h h + v

 . a b c d e f g h i j k l m n o p q r s
 1 + + + + + + + + + + + + + + + + + + +
 2 + + + + + + + + + + + + + + + + + + +
 3 + + 1 % % % 3 2 1 + 2 % 1 + + + + + +
 4 + + 3 3 3 3 % % 1 + 2 % % + + + + + +
 5 + + + + + + + + + + 2 % % + + + + + +
 6 + + 1 # 1 + + + + + % % 2 + + + + + +
 7 + + 2 # # + + + + + 1 1 1 + + + + + +
 8 + + 3 # # + + + + + + + + + + + + + +
 9 + + # # 3 + + + + + + + + + + + + + +
10 + + # # 2 + + + + + + + + + + + + + +
11 + + 1 1 1 + + + + + + + + + + + + + +
12 + + + + + + + + + + + + + + + + + + +
13 + + 1 % % % 3 2 1 + + + + + 1 # 1 + +
14 + + 3 3 3 3 % % 1 + + + + + 2 # # + +
15 + + + + + + + + + + + + + + 2 # # + +
16 + + 1 # # # 3 2 1 + + + + + # # 2 + +
17 + + 3 3 3 3 # # 1 + + + + + 1 1 2 + +
18 + + + + + + + + + + + + + + + + + + +
19 + + + + + + + + + + + + + + + + + + +

Place stones:

 . a b c d e f g h i j k l m n o p q r s
 1 + + + + + + + + + + + + + + + + + + +
 2 + + + + + + + + + + + + + + + + + + +
 3 + + + + + + + + + + + + + + + + + + +
 4 + + @ + + + + + + + + + + + + + + + +
 5 + + + + + + + + + + + + + + + + + + +
 6 + + + + + + + + + + + + + + + + + + +
 7 + + + + + + + + + + + @ + + + + + + +
 8 + + + + + + + + + + + + + + + + + + +
 9 + + + @ + + + + + + + + + + + + + + +
10 + + + + + + + + + + + + + + + + + + +
11 + + + + + + + + + + + + + + + + + + +
12 + + + + + + + + + + + + + + + + + + +
13 + + + + + + + @ + + + + + + + + + + +
14 + + + + + + + + + + + + + + + + + + +
15 + + + + + + + + + + + + + + @ + + + +
16 + + + + + + + + + + + + + + + + + + +
17 + + + + + @ + + + + + + + + + + + + +
18 + + + + + + + + + + + + + + + + + + +
19 + + + + + + + + + + + + + + + + + + +

Other implementation considerations:

  1. In Custom Game screen, when Handicap is not “None”, show checkbox, something like “Randomize? handicap stones”.
  2. The algorithm accepts parameters for (a) minimum separation between a stone and the edge of the board, and (b) minimum separation between two stones. Whether to fix them to canonical values, say (2, 1), or to allow user customization.
  3. When a combination of parameters doesn’t leave enough space for the algorithm to work (corresponding to when the program throws an error), show a pop-up message akin to when AI doesn’t accept particular game settings. This would be unusual for larger board sizes but more common for smaller ones.
  4. In the list of challenges, show the warning icon (currently used to indicate custom komi).
  • I hardly ever play handicap games.
  • I play handicap games but am not interested in randomized ones.
  • I like the idea of randomization but not the particular algorithm.
  • I like the idea of randomization and am ok with the algorithm, at least until a better one is found.
  • (self)

0 voters

EDIT:
One can try plain randomization as well as quadrant shuffling (“favor placing in every quadrant”) here:
https://runarberg.github.io/random-go-stone-placements/

I think this would be difficult to allow in ranked games, since we would introduce more randomness into an already moderately volatile system.

Nothing stops one from setting up a game like this with handicap under the Chinese ruleset, so it would not be a very urgent thing to add, and probably pretty confusing to new players.

3 Likes

I agree it needs to be unranked.

It would make it significantly easier to set up such games but if there’s no interest I agree it’s not worth it. I thought it would be fun for beginners and might increase stronger players interested in playing handicap games.

By the way, why is chinese rule set better than others for this?

EDIT:
Separate rating for different formats as in Pokemon Showdown is an option.

The Chinese ruleset allows for free placement of handicap stones. If there is any interest in trying a random handicap placement variant, one could use a Chinese rules game to accomplish that as a work around. If instead one just wants to randomly place the first N moves of a game, one can prearrange that with one’s opponent. For fairness, it would make sense to randomly pick the position and then do something like komi bidding to decide who gets to play which color.

Thus, it’s possible to already try this variant without an implementation integrated to the site. Hence, I think it’s completely unnecessary to do so, and actually, I think it would be a bad idea to add a custom implementation for just a particular variant that does not seem to have garnered any significant interest. I think that would be putting the cart miles ahead of the horse, and the biggest impact of doing so may be the negative effect of confusing some beginners.

I would recommend that you first attempt to recruit some players to try out and play test your suggested variant. Some experimentation may help to further refine it, and work out potential issues.

2 Likes

@yebellz Thanks for explaining about the chinese rule.

Since this only changes the initial configuration and involves no rule changes, it seemed to be the simplest kind of option to add.

I haven’t understood the confusing to beginners part. From the point of view of a beginner, who is not sure of the values of various moves, would it be any more confusing than regular handicaps? Is it not beneficial to be exposed to varied game positions in a lighthearted, noncommittal way? I think I’m actually not that different from beginners in this regard.

The bit about testing makes sense, I wanted to know if there’s any interest in this to make it worth pursuing.

1 Like

I just mean that it would be confusing to beginners to see the option to have randomization in go. Giving this arbitrary variant such high visibility (in the game customization options) makes it seem like a common thing to do.

Given the doubts about whether anyone is even interested in playing with this particular randomization scheme, I think it is highly premature to suggest that it be integrated as a game customization option.

Have you played any games with this randomization scheme yet?

2 Likes

I’d like to play it for sure sometimes but I don’t see how this would help more a beginner, as the used Chinese or Japanese system of handicap.
At reverse the stronger should get a better idea of how to use the randomized stones.
Good for fun if you like to change from the conventional but have no idea how to do, but less helpful for the weaker player.