SmartGo One incorporates KataGo, a really strong go engine. For most players, it’s too strong. While you can increase handicap until you manage to win, getting beaten mercilessly is not that enjoyable.
The newest version tries to make playing against the computer more interesting. When you start a new game, you can choose between five different levels, from ‘SmartGo++’ (full strength, playing as well as it can) to ‘SmartGo—’ (making more mistakes and even some blunders). The default is the middle of the road ‘SmartGo’ that will try to make the game more balanced.
The trick with dumbing down computer play is that you don’t want the computer to play non-sensical moves. The approach I’ve taken is that SmartGo will still select one of the moves that KataGo generates, but instead of always picking the best move, allow it to choose moves that lose points or reduce its chance of winning. If the computer is further ahead, it can lose more, bringing the game closer to balance.
This is a first stab at this feature, I will likely refine this in versions to come. Please let me know how this works for you: Do you always keep the computer at maximum strength? Is the lowest level still way too strong? Do you enjoy playing against the computer more?
SmartGo One can now read go games in file formats other than SGF: UGF, NGF, and GIB (with file extensions .ugi, .ngf, and .gib). UGF is popular in Japan, NGF is used by the Korean wBaduk server, and GIB is used by the Korean Tygem server.
SmartGo One will show thumbnails for these files, with the file extension indicated in the lower right corner.
Support for these file formats is read-only. If you make changes to the game, it will be saved as SGF, overwriting the imported file. Paste SGF will also accept games in those formats.
Unfortunately, I don’t have the spec for any of these file formats, so the files are interpreted based on reverse engineering as well as comments at Sensei’s Library. I’d love to get more sample files so I can make sure my code handles all the corner cases. And if you run into files that are not handled as well as they could be, please send me a copy at email@example.com. Thanks!
Also, please let me know if I should revive my old code for reading the Ishi (.go) file format. Is anybody still using that one?
Version 1.3 of SmartGo One adds a much requested feature: analyzing a whole game. I’ve also added a score graph so you can easily see where your game went off the rails. This is a bare-bones first implementation of that feature, will be refined in future versions.
To start a game analysis, tap and hold on the Hint icon, then choose Analyze Game. SmartGo will start with a quick pass through the game, then go back through spending more time on each move. Tap the Hint icon again to stop the analysis.
The score graph shows the score lead for Black or White so you can easily see lead changes. It’s currently using a log scale to better show small changes when the game is close.
You can also have it display the winning percentage. It uses a black or white horizontal line to indicate the projected winner – definitely a minimalist implementation at this point.
You can also tap and hold on the tree view to see the whole score graph (most useful on the iPhone).
This version also adds Spanish localization (thanks to Alejandro Montiel), reduces the app size by 200 MB to just 53 MB (by downloading large KataGo models on demand), and fixes some bugs, in particular one where empty text labels were wrongly written out in SGF.
Tap on the Hint icon, wait a few seconds, and a dot on the board shows you where KataGo thinks you should play. This minimalist version of Hint is now a thing of the past.
The newest version of SmartGo One makes Hint much more useful:
(1) It can show you multiple top moves that KataGo is considering. It uses the familiar color scheme from Lizzie: teal for the top move, green for other good moves, brown for moves that were considered but are not as good.
(2) It can show you the principal expected move sequence.
(3) If you like more information density, you can see top move choices and move sequence at the same time.
(4) You can easily switch between these display modes with a long press on the Hint icon.
(5) You can give KataGo more time: Settings > Computer Play > Time for Hint. If you set it to ‘Unlimited’, tap on the Hint icon again to stop computing.
(6) If you only see part of the board and the best move is off-screen, SmartGo pans the board to bring the best hint move into view.
(7) There’s now a keyboard shortcut for Hint: Cmd-K (think KataGo).
(8) Hint is now available on the toolbar in Replay mode, not just Play.