[Community Puzzle] Atari Go

https://www.codingame.com/multiplayer/bot-programming/atari-go

Send your feedback or ask for help here!

Created by @Tux4711,validated by @Essigautomat,@field3 and @trictrac.
If you have any issues, feel free to ping them.

Issue: When game ends without error, winner is not reported. This is especially important when the score is a tie. (It does show in console output, just not game info.)
Issue: Error is not reported as such on invalid selection. E.g. ‘PASSER’ or occupied location just reports boss won.
Suggestion: With suicide or when the ko rule is violated, a specific message would be helpful.
Issue: Boss does not behave the same during Replay in Same Conditions due to initial random move. This makes debugging frustrating. Shouldn’t it be possible to save the random seed?
Issue: Coordinate system is not explained. It’s not in array order since x refers to the column not the row, nor standard math coordinates since y axis inverted. Could just say the latter.
Issue: In game rules, “field” does not have expected meaning. In the Wikipedia article for Rules of Go, these are called positions. “Field” typically means the entire playing area, like a sports field.
Issue: In game rules, “no free fields beneath it” makes no sense. The intended meaning could be stated “no free positions around it”.
Suggestion: Example 1 “two upper stones (that are completely surrounded)” is not clear if you don’t already know that stones in the corner can be “surrounded”. Very explicitly stating “two upper white stones (…)” would make all the difference.
Suggestion: Explicitly state that the ko rule only applies to the previous position, not any previous position (as with superko rule). The explanation is not wrong, but for me it kind of left open this question.
Sorry, I’m literally learning the rules of Go in this challenge, and had to go elsewhere for an understanding. The link provided in the second line is great.

1 Like

As current #1 let me acknowledge that @dbdr (#4), @AntiSquid (#6) & @Tux4711 (#7) have the best go bots, but the game ends before they can use the territory they’ve captured. I haven’t had to learn any real go strategy & for this league I’m mostly playing Tron. If we played to the end they’d bury me.

200 moves isn’t enough for a 19x19 board. Let’s increase it, or drop the board size back, and we can have a proper fight in the top league.

Otherwise, awesome game! :smiley:

3 Likes

Hi @Michael_Howard,

I agree it would be pretty cool to have the game last longer than 200 turns, but unfortunately that’s not possible in a codingame multiplayer game :frowning:
But therefore there is another version of this game where the board size doesn’t increase in the higher leagues, but stays at the size of 9x9: https://www.codingame.com/multiplayer/bot-programming/atari-go-9x9 :slight_smile:

2 Likes

In the interest of the game, wouldn’t it be a good solution to go back to 13x13 for the highest league ?

2 Likes

Great Idea, how about dropping the size to 13 by 13 so that you can practically fill the whole board in 200 turns?

2 Likes

I received an error when I tried to use a list to create a random number in JavaScript and it gave me this error saying it crashed, please help.

java.lang.ArrayIndexOutOfBoundsException: 1
at com.codingame.game.Player.getMove(Player.java:23)
at com.codingame.game.Referee.gameTurn(Referee.java:230)
at com.codingame.gameengine.core.GameManager.start(GameManager.java:122)
at com.codingame.gameengine.core.RefereeMain.start(RefereeMain.java:67)
at com.codingame.gameengine.core.RefereeMain.main(RefereeMain.java:50)

What was your output? Interestingly, when you output only 1 number, this crashes the referee oO

My output is 2 numbers. Surprisingly this does not happen if I move second only if I move first.

The error comes from referee. Surely you don’t print anything in the code outside those 2 numbers?

Here is part of the code that I am using the list
var randNum = [“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”];

var x = Math.floor(Math.random() * 9 + 1);

var rand = randNum[x];
var rand2 = randNum[x];

console.log(rand+ "" +rand2);

}

console.log(rand+ "" +rand2);

I think there should be " " (with space), otherwise it is just one number :slight_smile: