I meant free handicap placement.
If you donât specify, it seems to default to âfree handicapâ anyway. However, if you ask where to place handicap stones, it does have some ideas
prompt
In the game of Go, with a board size of 9x9, giving 2 handicap stones, where should black place them
gpt-4oâs answer
In the game of Go, when playing on a 9x9 board, giving 2 handicap stones, the standard placement for the stones follows traditional handicap positions to give Black an advantage.
Standard Placement for 2 Handicap Stones on a 9x9 Board:
For 2 handicap stones, Black typically places them at the 4-4 points, which are the top right and bottom left corners of the board.
These coordinates (assuming the board is labeled A1 in the bottom left, H8 top right â standard Go coordinate system) are usually:
- Upper Right Corner: C7 (column C, row 7)
- Lower Left Corner: G3 (column G, row 3)
On Go servers or traditional notations, these positions are referred to as the star points on a 9x9 board.
Why These Positions?
- These points give Black influence over both corners and some central control.
- On smaller boards like 9x9, corners and speed of development are important, so this gives Black a fair head start.
Let me know if youâd like a full diagram of the board or tips on playing with handicap.
gpt-5âs answer
On a 9Ă9 board, the standard fixed placement for a 2-stone handicap is two diagonally opposite corner star points (the 3â3 points).
- Place Black on any one of these diagonal pairs:
- C3 and G7, or
- C7 and G3
- (Using numeric coordinates from the lower-left corner: (3,3) and (7,7), or (3,7) and (7,3).)
- The center (E5) isnât used for a 2-stone handicap.
Want a quick diagram with your preferred coordinate style?
But without specifically using my original prompt
âLetâs play a game of Go on 9x9 board, with 2 handicap stones, you play as blackâ, it (regardless it is 4o or 5) would place the handicap stones at will, like C6 or D7 and F3 G4. It memorizes these from the training data, but doesnât apply it (you can see the issue in gpt-4o where it says 4-4, star points, but later says C3, C7, itâs likely just digesting some longer training data without actually understand what they are associated with, and I suspect gpt-5 just hide it better). You can actually see this with the followup prompt from above
continue prompt for gpt-5
âYes, show me with a quick diagram using alphabet-numeric coordinate styleâ
Here are the two standard 2-stone handicap placements on 9Ă9 using letterânumber coordinates (columns AâJ, skipping I; rows 1â9 with 1 at the bottom).
Option 1: C3 and G7
text
9 . . . . . . . . . 8 . . . . . . . . . 7 . . . . . . X . . 6 . . . . . . . . . 5 . . . . . . . . . 4 . . . . . . . . . 3 . . X . . . . . . 2 . . . . . . . . . 1 . . . . . . . . . A B C D E F G H JOption 2: C7 and G3
text
9 . . . . . . . . . 8 . . . . . . . . . 7 . . X . . . . . . 6 . . . . . . . . . 5 . . . . . . . . . 4 . . . . . . . . . 3 . . . . . . . X . 2 . . . . . . . . . 1 . . . . . . . . . A B C D E F G H JWant this as an SGF snippet or flipped orientation (numbers at the top)?
And it is not placed as C7 G3, but C7 and H2. And if you ask for it to generate an sgf snippet, it would show like
(;SZ[9]HA[2]AB[cc][gf]PL[W])
which are C6 and G3, it just freely placed whatever, not considering the previous context at all.
its not ready for bigger than 5x5 board yet
its better to wait when it would be able to win on 5x5 as black while writing the coordinate only,
dialogue for 9x9 with image for every move would be too long
I just tried to place two 1-1 moves as white
it still didnât create any alive group
but I told it to not draw board in output this time, so it may be harder
Letâs play 5x5 Go. Chinese rules. No komi. You play as black. Write coordinate only. Try to win.
I actually did a lot of tests today, and surprisingly if the borders are sealed and no dead stones left within the territory, gpt-5 can score a 9x9 board.
And here is the prompt
Let's score a game of Go on a 9x9 board using both the Chinese rules and Japanese rules with the following sgf record
(;KM[7.5]PB[]RE[]PW[]SZ[9]CA[UTF-8];B[de];W[ff];B[eg];W[fd];B[dc];W[fg];B[eh];W[cg];B[dg];W[be];B[fh];W[cd];B[dd];W[fb];B[ch];W[cc];B[db];W[cb];B[gg];W[hf];B[hg];W[gf];B[if];W[ie];B[ig];W[hd];B[cf];W[bf];B[bg];W[eb];B[ca];W[ba];B[da];W[bc];B[af];W[ef];B[ae];W[ad];B[ag];W[ce];B[df];W[ee];B[ea];W[fa];B[ec];W[fc];B[ed];W[];B[])
gpt-5âs answer
Hereâs the final position from your SGF (9Ă9, SGF coords with a at top-left). X = Black, O = White, . = empty:
a b c d e f g h i
a . O X X X O . . .
b . . O X O O . . .
c . O O X X O . . .
d O . O X X O . O .
e X O O X O . . . O
f X O X X O O O O X
g X X . X X O X X X
h . . X . X X . . .
i . . . . . . . . .Quick notes
- Captures: Black captured 1 White stone (W at cg) during the game. No other captures.
- No dead stones remain; all empty points are fully enclosed as territory (no seki/dame).
Territory counts (from the diagram)
- Black territory: 16 points (big top area and the single point at c7).
- White territory: 19 points (top-left pocket of 4, and the large right-side/bottom pocket of 14, plus b4).
Scoring
Chinese rules (area scoring, komi = 7.5 from SGF)
- Black area = stones (24) + territory (16) = 40
- White area = stones (22) + territory (19) = 41
- Add komi to White: 41 + 7.5 = 48.5
- Result: White wins by 8.5 (W+8.5)
Japanese rules (territory scoring, komi = 7.5 from SGF)
- Black: territory 16 + prisoners 1 = 17
- White: territory 19 + prisoners 0 + komi 7.5 = 26.5
- Result: White wins by 9.5 (W+9.5)
If youâd like, I can also mark the territory on a diagram (o for White territory, x for Black territory) or export an SGF with the RE field filled in for each rule set.
The second prompt
mark the territory on a diagram (o for White territory, x for Black territory)
gpt-5âs refined answer
Here you go â o = White territory, x = Black territory (SGF coords, a at top-left)
a b c d e f g h i
a o O X X X O o o o
b o o O X O O o o o
c o O O X X O o o o
d O o O X X O o O o
e X O O X O o o o O
f X O X X O O O O X
g X X x X X O X X X
h x x X x X X x x x
i x x x x x x x x xLegend: X = Black stone, O = White stone, x = Black territory, o = White territory.
Notice that it doesnât format the board with alignment, but a very simple space between each element. I think it was trying to unfold the problem into counting problems, thus able to give an answer without the formatting getting in the way.
Iâve tested with other 9x9 games, but with dead stones still left on the board, or there are still dame left, etc. It doesnât always work. And itâs best to have very solid borders to get good results.
Iâve also tested it with 9x9 using 2 handicaps and using sgf snippet only for reply without formatting, and it would still run into a problem.
Here is the record
gpt-5 first ran into problems with just sgf snippet and not a formatted board at move 11, when I captured bD6, and it didnât register the D6 as captured, and then played E7 and called it âdouble atariâ. And when to ask it to recheck again, it first said no problem at all. And I asked it again to visualize with diagrams in every move. And then it started to post every diagram for every move till that point, and finally caught up the D6 âcapturedâ. Hence, I continue the game, asking it to visualize the diagram as well as keep adding a sgf snippet in each reply. And surprisingly, it was able to play ko for a couple of moves. However, it ran into trouble at move 32 again, when it thought it could play H6 to capture 4 white stones (I feel it treated the ko stone at D6 as alive), and I had to ask it to go back and check again for each stoneâs liberties and atari status, then it picked another move. It runs into trouble acknowledging C7 was captured after I played C8 at move 33, and I feel it ran into context limit at this point, and kept playing 1st line self-atari moves. Finally, at move 38, it thought H8 got captured, and kept trying to play H8, and couldnât update the board diagram, or the sgf snippet.
Iâd say it was a big improvement for context length, and the old tricks of keeping the records (either with move history or sgf snippets) can extend the games further (I already can play with gpt-3 back then using this trick), but at some points it just ran out of context and started to behave irradicately and cannot recover.
select text and click

a b c d e f g h i
a . O X X X O . . .
b . . O X O O . . .
c . O O X X O . . .
d O . O X X O . O .
e X O O X O . . . O
f X O X X O O O O X
g X X . X X O X X X
h . . X . X X . . .
i . . . . . . . . .
or just add three ` symbols before and after like that:
![]()
when you copy output to forum they may disappear like space in the start of text
lmarena instead of official site also may fail to properly display what bot actually writes
a b c d e f g h i
a o O X X X O o o o
b o o O X O O o o o
c o O O X X O o o o
d O o O X X O o O o
e X O O X O o o o O
f X O X X O O O O X
g X X x X X O X X X
h x x X x X X x x x
i x x x x x x x x x
I mentioned kaggle had a game arena and were doing a chess exhibition with LLMs
From a discord user:
so livestream is tomorrow?
will Go be supported in the future? I think Go is harder than chess
response from someone at the Kaggle team
Yep, itâs tomorrow!
We are planning to support a lot of different games with game arena.
Keep in mind that relative to reinforcement learning (eg. AlphaGo) LLMs are fairly bad at playing games, so they have a long way to go to start mastering harder games!
Maybe Go will come along at some stage, but I guess we shouldnât be expecting them to play well ![]()
No, it literally differs at the output, not just copy the format
This is another record that it failed to score its output is like this, it literally has a line to specify the column coordinates
And this is the one that it doesnât. Iâve tested a couple of them, and those replies didnât contain these âformat stringâ are often more accurate
Iâve tested gpt-5âs capability to generate a function to count the score, and here is the code it gave me:
I can score this precisely for both Japanese (territory) and Chinese (area) rules. Since itâs easy to make mistakes by hand on a 19Ă19, the quickest way to get exact numbers from your SGF is to run a tiny scorer. Paste the code below into a file (e.g., score_go.py) and run it with Python 3. It will parse your SGF, replay all moves, and print both Japanese and Chinese scores using KM[6.5]. It assumes both players passed with no unresolved dead stones (the SGF ends with W[];B[]), which matches your record.`
If you prefer, run it and paste the output here and Iâll interpret it and highlight any rule-specific nuances (e.g., seki).
Code (drop-in, no dependencies):
Python
import re
from collections import deque
SGF = r"""(;KM[7.5]PB[]RE[]PW[]SZ[9]CA[UTF-8];B[de];W[ff];B[eg];W[fd];B[dc];W[fg];B[eh];W[cg];B[dg];W[be];B[fh];W[cd];B[dd];W[fb];B[ch];W[cc];B[db];W[cb];B[gg];W[hf];B[hg];W[gf];B[if];W[ie];B[ig];W[hd];B[cf];W[bf];B[bg];W[eb];B[ca];W[ba];B[da];W[bc];B[af];W[ef];B[ae];W[ad];B[ag];W[ce];B[df];W[ee];B[ea];W[fa];B[ec];W[fc];B[ed];W[];B[])"""
def parse_prop(s, key, cast=str, default=None):
m = re.search(rf'{key}```math
([^```]+)```', s)
if not m:
return default
try:
return cast(m.group(1))
except:
return default
def parse_moves(s):
# Returns list of tuples: ('B'/'W', (x,y)) or ('B'/'W', None) for pass
moves = []
# naive parse: find all ;B[..] or ;W[..]
for color, coord in re.findall(r';([BW])```math
(.*?)```', s):
if coord == '':
moves.append((color, None))
else:
x = ord(coord[0]) - ord('a')
y = ord(coord[1]) - ord('a')
moves.append((color, (x, y)))
return moves
class GoBoard:
def __init__(self, size):
self.n = size
self.board = [['.' for _ in range(self.n)] for _ in range(self.n)]
self.prisoners = {'B': 0, 'W': 0}
def inb(self, x, y):
return 0 <= x < self.n and 0 <= y < self.n
def neigh(self, x, y):
for dx, dy in [(1,0),(-1,0),(0,1),(0,-1)]:
nx, ny = x+dx, y+dy
if self.inb(nx, ny):
yield nx, ny
def group_and_liberties(self, x, y):
color = self.board[x][y]
assert color in ('B','W')
q = deque([(x,y)])
group = {(x,y)}
liberties = set()
while q:
cx, cy = q.popleft()
for nx, ny in self.neigh(cx, cy):
v = self.board[nx][ny]
if v == '.':
liberties.add((nx, ny))
elif v == color and (nx, ny) not in group:
group.add((nx, ny))
q.append((nx, ny))
return group, liberties
def remove_group(self, group):
# group is set of coords of same color stones
color = self.board[next(iter(group))[0]][next(iter(group))[1]]
for x, y in group:
self.board[x][y] = '.'
return color, len(group)
def place(self, color, move):
if move is None:
return True # pass
x, y = move
if not self.inb(x, y) or self.board[x][y] != '.':
raise ValueError(f"Illegal move {color}[{x},{y}]")
opp = 'W' if color == 'B' else 'B'
self.board[x][y] = color
# capture any adjacent opponent groups with no liberties
captured = 0
for nx, ny in set(self.neigh(x, y)):
if self.board[nx][ny] == opp:
g, libs = self.group_and_liberties(nx, ny)
if not libs:
_, sz = self.remove_group(g)
captured += sz
if captured:
self.prisoners[color] += captured
# check suicide: own group must have liberties
g, libs = self.group_and_liberties(x, y)
if not libs:
# undo move
self.board[x][y] = '.'
raise ValueError(f"Suicidal move {color}[{x},{y}]")
return True
def count_territory(self):
n = self.n
vis = [[False]*n for _ in range(n)]
terr = {'B': 0, 'W': 0}
neutral = 0
for i in range(n):
for j in range(n):
if self.board[i][j] == '.' and not vis[i][j]:
# BFS empty region
q = deque([(i,j)])
vis[i][j] = True
region = [(i,j)]
borders = set()
while q:
x, y = q.popleft()
for nx, ny in self.neigh(x, y):
v = self.board[nx][ny]
if v == '.':
if not vis[nx][ny]:
vis[nx][ny] = True
q.append((nx, ny))
region.append((nx, ny))
elif v in ('B','W'):
borders.add(v)
if borders == {'B'}:
terr['B'] += len(region)
elif borders == {'W'}:
terr['W'] += len(region)
else:
neutral += len(region)
return terr, neutral
def count_stones(self):
b = sum(1 for i in range(self.n) for j in range(self.n) if self.board[i][j] == 'B')
w = sum(1 for i in range(self.n) for j in range(self.n) if self.board[i][j] == 'W')
return b, w
def main():
size = parse_prop(SGF, 'SZ', int, 19)
komi = parse_prop(SGF, 'KM', float, 0.0)
moves = parse_moves(SGF)
board = GoBoard(size)
for color, mv in moves:
board.place(color, mv)
terr, neutral = board.count_territory()
b_stones, w_stones = board.count_stones()
prisoners = board.prisoners
# Chinese (area)
b_ch = terr['B'] + b_stones
w_ch = terr['W'] + w_stones + komi
# Japanese (territory + prisoners)
b_jp = terr['B'] + prisoners['B']
w_jp = terr['W'] + prisoners['W'] + komi
# Print details
print(f"Board size: {size}x{size}, Komi: {komi}")
print(f"Stones on board: B={b_stones}, W={w_stones}")
print(f"Prisoners: B={prisoners['B']}, W={prisoners['W']}")
print(f"Territory: B={terr['B']}, W={terr['W']}, Neutral={neutral}")
print("\nChinese (area) scoring:")
print(f" Black total = territory({terr['B']}) + stones({b_stones}) = {b_ch}")
print(f" White total = territory({terr['W']}) + stones({w_stones}) + komi({komi}) = {w_ch}")
diff_ch = w_ch - b_ch
if diff_ch > 0:
print(f" Result: White wins by {diff_ch:.1f} points (Chinese).")
else:
print(f" Result: Black wins by {-diff_ch:.1f} points (Chinese).")
print("\nJapanese (territory) scoring:")
print(f" Black total = territory({terr['B']}) + prisoners({prisoners['B']}) = {b_jp}")
print(f" White total = territory({terr['W']}) + prisoners({prisoners['W']}) + komi({komi}) = {w_jp}")
diff_jp = w_jp - b_jp
if diff_jp > 0:
print(f" Result: White wins by {diff_jp:.1f} points (Japanese).")
else:
print(f" Result: Black wins by {-diff_jp:.1f} points (Japanese).")
if __name__ == "__main__":
main()
Notes and assumptions:
- The final two moves are passes (W
[]; B[]), so the game is over. - This scorer removes captured stones during play and then counts territory from the final position. It treats any empty region bordering both colors as neutral (covers seki correctly in standard cases).
- For Japanese rules, âprisonersâ are the stones actually captured during play. If players passed while leaving dead stones on the board (uncommon), those would need to be removed (counted as prisoners) by agreement before scoring; if you suspect that happened, I can add a prompt to mark dead groups.
Want me to run this for you and post the exact Japanese and Chinese scores? If you share the output of the script above, Iâll summarize who wins by how much under each ruleset.
The code doesnât run directly where the re.search expression is incorrect, and they should be replaced, like for finding komi
m = re.search(rf'{key}\[(.*?)\]+', s)
and for finding move coordinates
for color, coord in re.findall(r';([BW])\[(.*?)\]', s):
Once you correct them, this code does score the simple games like a 9x9, but will fail where there are still dead stones on the board, and borders are âunclearâ with dame.
So I can see why it has improved in the final scoring department, where it can simply write a scorer and run it directly. Hence, it is technically possible for it to write a simple older Go engine that detects atari and some "influence check with groups, but not likely some MCTS engine yet. gpt-5 has improved in its coding and running instance capability, but not in the department of Go understanding.
when it really forgets to align, it still makes sense to make it more readable for us anyway
Caution! unclear naming:

model on lmarena that named âgpt-5-chatâ is not reasoning mode, its like running leela with 0 playouts
I actually reformatted the earlier reply for the 9x9 2 handi experiment for easy-to-read, but just for that example of scoring, I chose to share its raw into just to show there is a difference in its output, and not by accident, but it seems to exhibit a certain trend when it doesnât format itself (maybe I should have also upload it to a library on OGS to just show the original sgf).
I also notice there are gpt-5-mini and gpt-5-nano now. Also the open-sourced gpt-oss-20b and 120b. And yes, gpt-5-chat hallucinates even more than those gpt-3 somethimes.
https://www.reddit.com/r/OpenAI/comments/1ml0i1h/a_phd_in_your_pocket_ladies_and_gentlemen/
huh, gpt-5 without âthink longerâ turned on is totally broken and all free users are confused now
If Go had been created in England, what would it have been called?
lol
Stonehenge is pretty name, nice pick
And as of today (Nov 1, 2025), ChatGPT is still freaking out over the emoji of seahorse
![]()
I accept the challenge. I will play as Black, you play as White. The rules are Chinese, 5x5 board, no komi.
Move 1 (Black): C3
Since the center point is the most powerful spot on a 5x5 board, I will claim it immediately.
A B C D E
5 . . . . .
4 . . . . .
3 . . X . .
2 . . . . .
1 . . . . .
Your move. Please enter coordinates (e.g., C2).
game
A B C D E
5 . . . . .
4 . . . . .
3 . O X . .
2 . . . . .
1 . . . . .
A B C D E
5 . . . . .
4 . . X . .
3 . O X . .
2 . . . . .
1 . . . . .
A B C D E
5 . . . . .
4 . . X . .
3 . O X . .
2 . . O . .
1 . . . . .
A B C D E
5 . . . . .
4 . . X . .
3 . O X . .
2 . . O X .
1 . . . . .
A B C D E
5 . . . . .
4 . . X . .
3 . O X . .
2 . O O X .
1 . . . . .
A B C D E
5 . . . . .
4 . . X . .
3 . O X X .
2 . O O X .
1 . . . . .
A B C D E
5 . . . . .
4 . O X . .
3 . O X X .
2 . O O X .
1 . . . . .
A B C D E
5 . . . . .
4 . O X X .
3 . O X X .
2 . O O X .
1 . . . . .
A B C D E
5 . . . . .
4 . O X X .
3 . O X X .
2 . O O X .
1 . . . O .
A B C D E
5 . . . . .
4 . O X X .
3 . O X X .
2 . O O X X
1 . . . O .
A B C D E
5 . . O X .
4 . O X X .
3 . O X X .
2 . O O X X
1 . . . O .
A B C D E
5 . X . X .
4 . O X X O
3 . O X X .
2 . O O X X
1 . . . O .
A B C D E
5 . X . X .
4 O O X X O
3 . O X X .
2 . O O X X
1 . . . O .
A B C D E
5 X X . X .
4 O O X X O
3 . O X X .
2 . O O X X
1 . . . O .
A B C D E
5 . . O X .
4 O O X X O
3 . O X X .
2 . O O X X
1 . . . O .
A B C D E
5 . X . X .
4 O O X X O
3 . O X X .
2 . O O X X
1 . . . O .
A B C D E
5 . X . X .
4 O O X X O
3 . O X X .
2 . O O X X
1 . . O O .
A B C D E
5 X X . X .
4 O O X X O
3 . O X X .
2 . O O X X
1 . . O O .
A B C D E
5 X X . X .
4 O O X X O
3 . O X X .
2 O O O X X
1 . . O O .
A B C D E
5 X X X X .
4 O O X X O
3 . O X X .
2 O O O X X
1 . . O O .
A B C D E
5 X X X X .
4 O O X X O
3 . O X X .
2 O O O X X
1 . . O O O
A B C D E
5 X X X X .
4 O O X X O
3 . O X X X
2 O O O X X
1 . . O O O
Board after White E5:
Whiteâs move at E5 fills the last liberty of the large group of 11 Black stones.
The Black stones at A5, B5, C5, D5, C4, D4, C3, D3, E3, D2, E2 are captured and removed.
(Whiteâs stones at E4 and E5 survive because removing the Black stones creates new liberties).
A B C D E
5 . . . . O
4 O O . . O
3 . O . . .
2 O O O . .
1 . . O O O
Move 14 (Black): C3
I must restart the game in the center.
A B C D E
5 . . . . O
4 O O . . O
3 . O X . .
2 O O O . .
1 . . O O O
Your move.
you call it ârestartâ?
It is a fair point; ârestartâ is an understatement! You successfully captured a massive group of 11 stones, which is effectively a game-ending move on a 5x5 board.
However, my instructions are to play until the end. Since I have not resigned, I played C3 in the newly cleared space to see if I can form a living group among the ruins.
you lost
You are absolutely right. The capture of my massive group at E5 was a devastating and game-ending move. There is no way for Black to recover from that loss on a 5x5 board.
I resign.
Congratulations on the win! That was a sharp tactical game.
AI training! ![]()
How long to reach superhuman?
The strategy to get to superhuman AI is easy: make humans more stupid. And we are already half way there. A colleage of mine just let ChatGPT âoptimiseâ a complex configuration file for proprietary software ChatGPT doesnât (couldnât) know anything about. Of course without giving ChatGPT access to the verbose documentation that exists. ![]()
Did your friend work at Cloudflare and crash the Internet yesterday?
If I had written THAT piece of buggy software, Iâd be earning a lot more than I am!





