|Table of contents|
Peter Williamson (a co-worker of mine) has ported Go Suite to Smartphone. Very, very cool! He deserves 100% credit. I gave him the code several months ago and he went off and did all the work to refactor the UI and get it all working on the phone. Super cool! (You can send him feedback or bug reports at email@example.com.)
Give it a try and give feedback. Have fun!
Just a few bug fixes. No new features. No change to Pocket GnuGo build.
- Culture sensitive float parsing and display. Previously depended on device Region Settings and was broken for cultures that don't use a period for a decimal point. This was causing komi and game result to display wrong (no decimal point), and was causing some GTP commands to malfunction (Score and Ideas). Now the display is always based on current UI culture, but storage and parsing (for both SGF and GTP) always use the invariant culture.
- Handicap stones on non-19x19 boards not displayed upon first load (until nav away and back). This was due to the SZ property causing a new board to be made although AB and AW properties had already been parsed in the root node; works now independent of property order.
- Nav to root persists zoom (VW) state. This works now even for multi-record documents where each record has a different zoom (e.g. a problem collection).
- Game result shown in the root (along with other game info) as well as at the end of the main line.
Pocket GnuGo Integration
You can now play against the machine (or let it play itself). The buttons on the right side of the Playing toolbar are Undo, Ideas, Score, and Pass (Score and Ideas among other engine settings are also available while not playing under File > Computer). While the machine is thinking clicking the little 'Stop' sign aborts and exits playing mode; You can then File > Computer > Resume Game any time.
The Ideas feature will generate move ideas labeled 'A', 'B', 'C', ... in order of precedence (3rd screenshot). Score will display territory markup and calculate the score.
The game engine is a port of GNU Go 3.6 for Windows Mobile which Sidney Liu is currently working on (past work by Ivan Davtchev, Man Li, Alex Seewald, and of course the main GNU Go team deserves much credit as well). For more info, check out: http://www.vieka.com/gnugo/
It's simple, but this is my favorite feature:
On the left we have a common example of commentary using coordinates to refer to points and stones on the board (d13, n4, q6, d6). Labels would be so much easier to follow. Also, to save screen real estate I'd rather be able to leave Display>Coordinates off (and Display>Oversized Board on).
On the right you can see that in Display>Comment Cleanup mode Go Suite converts coordinates in the comment to labels on the board. Empty points are labeled with the next available letters (A, B, C) and stones are labeled with the move number. The comment text refers to them that way. Setup stones are marked and referred to as 'the marked black/white stone'.
All of this is just a display mode that can be turned on/off. The actual comment text remains unaltered.
While not in Edit>Record Game mode, tapping the board acts as a 'guess next move'. It will follow the game if you guess correct. Otherwise it will mark the guessed point with red, purple, or blue in order of proximity to the correct point (gray if nowhere near). It will mark the point yellow if it is nowhere near the correct point but is playing within the next five moves (proximity in time).
If you misplace a stone, you can simply drag it to the correct place. This makes entering game records much, much easier.
You can only drag the current play but it's simple enough to tap a stone placed several move back. This will navigate to that point in the game. Then drag it.
To clean up the UI a bit, Edit Position and Manual Zoom are now explicit modes with separate toolbars:
As a shortcut, you can now switch between placing Black and placing White stones by double tapping.
Toggled under Display>Territory, this displays TW[..], TB[..] SGF properties. It is not yet editable but is useful for viewing the settlement in KGS games, for example.
I've had numerous requests to support Chinese, Japanese, Korean, Cyrillic, etc. Go Suite now reads/writes properties in UTF-8 encoding (and sets the CA[..] SGF property). Getting the correct fonts and configuration set up on the Pocket PC is a bit of a pain but the result is nice:
To edit games in non-Latin-1 char set, you'll need some kind of input system. I like this kana keyboard which comes with ECTACO Partner Dictionary or any of a number of other input methods available (handwriting recognition, picking Kanji by radical/stroke count, etc.).
You can browse SGF files with variation support for both sibling (left) and child modes (right) ( SGF Variation Styles). I personally like sibling-style best but comments in some game records refer to variations as children (notice that the comments in the left screenshot make no sense). The comments field can be expanded/collapsed by tapping it (or by pushing the jog dial in). The solid colored square indicates whether you are in the main line (red), a variation (blue) or a the end of a line (gray).
It supports most SGF FF properties including all game info, labels, various markup, dimmed/selected points, various board sizes, variations, game/problem collections (multiple records per file), etc.
The comments field at the bottom is one-stop-shopping for full game info (first node), and other position and move annotations such as "Hotspot", "Good for Black", "Even Position", "Good Move", "Doubtful Move", etc. Also, you can see that the node name (or file name in it's absence) is displayed on the title bar along with an indication of the current stone (or color to play).
Browsing is made very convenient on devices with a jog dial: Left/Right move to next/previous. Down moves to next alternate or, in child mode, hilights (blue box) what will be the next move. Up either moves to the previous alternate or, if there is none, it jumps back to the previous branch. That's very useful for exploring game trees: you come to a branch and explore to the end of each variation, then just pop back to the branch and keep going - all without using the stylus.
Advanced navigation tricks: Moving the jog dial Up will go to previous branch (as always), then from there Up again will go to the next previous branch (so you can quickly pop-pop-pop from a deeply nested node; especially useful while browsing KJD). It sort of stays in previous branch mode as long as you keep popping. If you use Down to start navigating alternates then Up changes modes and will more expectedly go to previous alternate rather than branch. It sounds confusing but it's what you'd expect once you start using it.
Tapping a stone navigates back to the node in which that stone was placed.
Buttons on the navigation toolbar are Main Line, Previous Branch, Previous Alternate, Next Alternate, Start, Back 10, Back, Forward, Forward 10, End. A little secret feature is that if you press and hold these buttons, they turn red and repeat - allowing you to speed through the moves. If you're using the jog dial, you may want to adjust the key repeat speed on your device by going to Start > Settings > Personal (tab) > Buttons > Up/Down Control (tab). Several other navigation options are available under View > Navigate and View > Search. Previous/Next Interesting means commented, annotated or branch.
You may choose to view with/without coordinates, numbered moves (notice captured points are numbered as well), and may hide markup and labels. Oversized board mode is a special mode that works only for 19x19 full-board view without coordinates - it displays slightly larger stones but allows them to go off the edge of the screen a tiny bit.
Notice that with ClearType the stone labels are quite readable even at this tiny size. Be sure to enable this on your device: Start > Settings > System (tab) > Screen > Enable ClearType (checkbox), then soft reset.
You can zoom and scroll around the board in Manual Zoom mode (View > Zoom > Manual). The toolbar changes and you have options for zoom in/out, jump to one of the four corners, and scroll left/right/up/down (also to jog dial allows easy scrolling while in this mode).
Additionally, you can automatically crop in around the stones on the board (for a partially occupied board - problem setup, joseki, etc.) and can easily jump back to full board (View > Zoom > Full Board).
To get out of this mode just uncheck Manual and continue to browse and edit while zoomed in. Or switch our by choosing Zoom > Full Board or Automatic.
Besides variation support, there is support for SGF collection files with multiple games/problems per file. This can be thought of as variations of the root node. In fact, you can flip through games as regular alternates if you are at the root node - that is, you can use Next/Previous Alternate buttons on the toolbar or use the jog dial. If not at the root node, you can navigate to Previous/Next Record under View > Navigate.
Also on the File menu you may choose Open Record... or New Record... to add to the currently open collection file. You can choose to Save Record... to save just one game/problem from the current collection into a separate file.
You can see from the title bar that in the above screenshot, we are browsing game #282 in the MegOfGames file (a single file containing several thousand games), and since we're at the first node, the blue Next/Previous Alternate toolbar buttons are available to flip though the games.
Normally, tapping the board will navigate if appropriate. Checking Edit > Record Game will cause tapping to add moves to the game record; creating variations automatically. You can, of course, also add stones to the board for setup, and add board markup. Finally, you can annotate the position (e.g. Good for White) or move (e.g. Interesting Move). Annotations are displayed in the comment field but this saves you typing, makes the record smaller, and can later be localized into other languages. These are the standard SGF annotations but I plan to introduce a bunch more in the future.
You can edit node info and game info which is displayed in the title bar and comment fields but again is a standard way to record this infomation for compatibility with Go databases, etc.