i have seen the idea of gray (or dual, as refered in the video) pieces and i have a feeling it might work well with this randomization. For example, 3 stones for each player and 2 gray stones using the 2 quadrants left.
EDIT:
ordinary board can be thought of as 21 x 21 with edges occupied by gray stones.
I’m sure you can ask Math stack exchange and get a better answer, but pseudo-random number generator (such as you’ll find in your browser feeding the stone placements) is perfectly sound for this task. You’ll encounter problems with pseudo-random numbers only if someone will benefit from being able to predict the next one (such as to crack an encryption, or win a game of online poker).
If the stone placement used real random numbers you would find that stones would have even more tendency to cluster together, as the probability of no clusters of stones is less then the probability of getting at least one cluster.
i have a slight request/question, the file is saved as “Unknown” without extension. i had to add .sgf to be able to upload it on sgf library in OGS. i wonder if you could add the extension, or is the filename decided by the browser, or specific to devices?
I was reading the discussion about handicap vs reverse komi and i have a feature request. Could you add the option to give extra stones for black?
…
for reference, the following page links to 2 ways of calculating reverse komi, one is a table made from game data, the other a formula using ogs rating. https://senseis.xmp.net/?ReverseKomi
now wondering about the effect of a single neutral stone placed 5th line up, potentially balancing out the advantage (?) of having more stones closer to corners/sides.
EDIT:
i wonder if it is possible to estimate the optimal point or area for the neutral stone to be placed in order to balance the configuration of other stones?
@Jirogo36 I’ve saved the generated starting position as URL now, so after you’ve generated the position, you can share the position with your opponent by copy-pasting the URL, you can then bet on komi, adjust the komi field on the winning bet, and then download the SGF.
Been playing handicapped games against kata-bot (black needs to pass first turn, for anyone wants to do the same). I’ve been tending to run generate several times until I get one that is spread apart enough.
I have a vague idea for an improved (?) version. Instead of quadrant shuffling, no-adjacent rule, and free-stone margins, we make a 2 dimensional probability distribution (table of probability?) over the board.
After each stone placement, we somehow update the distribution using 3 types of adjustable “repulsion coefficients”: same-color repulsion, opposite-color repulsion, and edge repulsion. Taxicab distance might be relevant for repulsion, making attachment less likely than shoulder hit. Having separate coefficients for same/opposite colors makes sense if shoulder hit (opposite color) is more severe than kosumi (same color), which i’m not sure of (i’m a kyu player.).
@Vsotvep I’d like to hear your opinion on this as well, as you seem to be much more knowledgeable in math than me.
EDIT:
It occurred to me it might be required to keep track of 2 separate distributions, one for each color.
EDIT2:
Actually, repulsion from edge might not make sense. Stone-free margin might be more reasonable.
There are some lovely ways to increase the probability of an even distribution of stones on the board, some more sophisticated then others.
I’m sore we can (for example) assign probabilities of each intersection based on the distance to the nearest stone so that an intersection next to a stone has less probability of being drawn then an intersection 10 rows and 10 columns from the nearest stone. We can take this further and weight the probability based on the weighted mean distance to each stone on the board.
Alternatively we can assign probability based on how many stones are in a given radius from the intersection. Say an intersection with only one stone in a 5 intersection radius circle around it has a greater probability of being drawn then an intersection with 4 stones there.
These are just two possibilities but I’m sure there are some lovelier distributions out there, and I would love to try implement them. I’m a big fan of statistics and probability—even though I’m not very skilled in the craft.
By the way. If we implement any of these fancy distributions, the starting position is still fully (pseudo) random. We just say that it is not uniformly distributed, or that the randomness is not independent ¹.
That is, each draw is dependent on the previous draws; which is true anyway—but to a greater degree—since a stone can never be drawn to the same intersection as a previous stone.
Let’s say we start with a 19 x 19 table. There’s an option to normalize the cells (make them add up to 1, specifically 1 / 19 x 19) but here we start them initialized to 1s. (Ignoring stone-free margin in this example.)
Let’s go to the update phase after a stone is placed. In neighbor-counting (counting stones within certain radius), cells within the radius is incremented by 1. In weighted mean distance, we increment cells within distance 1, then within distance 2, then within distance 3, … (The cells near the placed stone are incremented more often.)
When we place a new stone, we make each point inverse as likely as the cell in the table.
These numbers could lead to overblown results and probably need to be adjusted, but it’s a start.
More refined method might be to make a update/scaling table after each stone placement and do a cell-wise multiplication. I wonder if it can be formulated in terms of matrix multiplications, even though I don’t know if there’s any advantage to it. Normalizing would also make the numbers easier to interpret.
EDIT:
When I wrote “weighted mean distance”, I actually only took into acount the distance, so I guess they are not the same.
EDIT2:
If we could make something that works well, I have an idea of a separate randomized (and handicapped) ladder analogous to randbats in pokemon showdown. It’s a junky idea and might offend some players, but sounds fun for me.