forked from herzbube/littlego
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
475 lines (453 loc) · 23.7 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
Mon September 09 2013 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.12.0
- Features
- It is now possible to configure the computer player with a threshold how
quickly it will resign a game (#133). For instance, it is now possible to
tell the computer player to never resign so that the game can be played out
to the very end. This also allows beginners to play with a large handicap on
a small board (up until now the computer player would always resign
immediately when faced with an overwhelming handicap). The resignation
behaviour setting can be found towards the bottom on the "edit profile"
screen.
- When an old board position is viewed, the intersection where the next stone
will be placed is now marked with the letter "A" (#101). This can be
disabled in the "Board position" settings.
- Changes to the active profile are now immediately applied to the GTP engine
(#123). For instance, it is now possible to change the playing strength or
the resign behaviour of the computer player without starting a new game.
- At the bottom of the "Archive" tab there is now a button to delete all
archived games in one fell swoop (#55)
- The tab order can now be customized (#57)
- Players & profiles can now be reset to their factory defaults (#54), in case
some severe misconfiguration occurred
- Players & profiles can now be edited directly from the Game Info screen
(#122)
- Other improvements and changes
- Loading a game from the archive is now about 10% faster (#166)
- The user interface for changing the dangerous "Max. memory" profile setting
is now vastly improved (#153). The maximum value that can be selected for
the setting is now limited to a fraction of the device's physical memory,
and the amount of physical memory that the device has is also displayed.
- When a computer player is edited, there is now a button that allows to
directly edit the profile that the player is using (#71)
- When a profile is edited, the players that are using the profile are now
listed at the bottom of the screen (#70)
- The button to reset predefined GTP commands is now clearly marked with a
"red warning" style (#56)
- The "About" screen now displays the build date/time (#161)
- Bugfixes
- The GTP engine is configured to no longer recognize positional superko
(#171). This is a temporary solution to bring the GTP engine's rules into
sync with Little Go's rules. Little Go currently does not recognize superko,
so this sync'ing fixes the problem that Little Go lets the user make a
superko move which is then rejected by the GTP engine. Many thanks to Brid
Griffin for emailing me a bug report that helped me with diagnosing this
problem! Note that Little Go will officially support superko in 1.0.
- On the iPad, the board size is now correct after the device is rotated while
the board is zoomed (#162)
- Dragging a stone outside the zoomed in board section no longer places the
stone (#143)
- The computer player now resigns even if the profile setting "Max. games" is
set to a value < 5000 (#154)
- Undo resign is no longer possible when viewing an old board position. This
fixes the problem that undo resign when viewing an old board position
corrupts the backup .sgf (#158).
- If the game has ended but an old board position is viewed, the status view
now shows information related to the board position instead of end-of-game
information (#107)
- Scoring mode is no longer activated automatically when a player resigns. The
effect is that the status now reads "x has resigned" instead of the
inappropriate "y wins by ..." (#4). If a score is desired it must be
requested by manually activating scoring mode.
- The user can no longer place a stone on behalf of the computer player (#160)
- The board position can no longer be changed while Fuego is searching for
an initial set of dead stones during scoring (#163)
- A number of potential app crashes have been eliminated (#130, #172, #173)
Mon May 20 2013 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.11.1
- Bugfixes
- Board position can no longer be changed while other commands are executed
(#156). This hard-to-find bug caused numerous crashes (e.g. those described
by issues #128 and #129) and other problems, such as the infamous
"The computer played an illegal move." alert. Many thanks to Logan Bouia and
Carole Wolf for emailing me bug reports that helped me with diagnosing the
problem.
- The entire game is now saved when an old board position is viewed (#150)
- The app should no longer crash after receiving a memory warning on iOS 5
while the "Game info", "New game" or "Save game" screens are displayed
(#157). Thanks to the anonymous iPad 1 user who patiently reminded me that
the issue needs fixing by sending an occasional crash report.
- Fix for a memory leak in TableViewSliderCell (#155)
Sat Apr 20 2013 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.11.0
- Features
- Display coordinate labels (#12). This can be turned on or off under
"Settings > Play view > Display coordinates".
- Display move numbers (#17). The user preference can be found under
"Settings > Play view > Display move numbers". Because displaying many move
numbers is cluttering the board, the percentage of move numbers to display
can be adjusted with a slider.
- Zoom the board up to a 3x zoom scale (#16). All standard zoom gestures are
supported. Because zooming costs memory the user may want to limit herself
to a maximum zoom scale that is below 3x. This can be done with the slider
found under "Settings > Play view > Maximum zoom". A limit of 2x zoom scale
is recommended for devices that do not have much RAM (typically older
devices such as the iPhone 3GS or the iPad 1st generation).
- Archived games can now be exported to Mail (#19) and other apps that are
capable of processing .sgf files (e.g. DropBox).
- Games can now be imported from Mail (#20) and other apps that are capable
of exporting .sgf files (e.g. DropBox).
- Other improvements and changes
- The application now launches much faster (#114), except for the first time
after upgrading from a previous version.
- Status text and activity indicator are now displayed in the navigation bar
at the top of the screen (#120).
- When a new game is started, the "discard old game" question is not displayed
anymore if there have been no changes since the game was saved the last
time (#42).
- Loading a game from the archive is now about 10% faster (commit 139bb46).
- Drawing of Go board now makes better use of the available space. This is
especially noticeable for the large 19x19 board on a small iPhone screen
(commit 86443d9).
- The "stone distance from fingertip" user preference now behaves more
predictably: Previously a "clever" algorithm tried to figure out the "best"
distance by taking into account various parameters such as board size and
screen size. The new algorithm now simply scales a fixed maximum distance
according to the value of the slider.
- Bugfixes
- No longer crash when a computer vs. computer game is restored during app
launch and that game has already ended (#127). Thanks to Serge Grossenbacher
for reporting this bug.
- No longer draw in secondary thread during app launch (#117). This eliminates
another potential source of crashes.
- iPad only: Screen should no longer be flickering wildly after loading some
games from the archive (#126).
- It is now possible to save games with a name that consists of 1 or 2
characters (#125).
- Resigning is no longer possible when viewing an old board position. This
fixes the problem that resigning when viewing an old board position corrupts
the backup .sgf (#115).
- During scoring, the activity indicator is now only displayed for finding
the initial set of dead stones (#121).
- Known bugs
- App may crash when board position is changed (possibly forward going only)
(#128)
- App crashes when user plays an illegal move while viewing an old board
position (#129)
- App crashes during launch after a player has been deleted (#130)
- Technical changes
- MBProgressHUD upgraded to the newest version (HEAD of the git repository).
The progress indicator is now a round shape instead of a horizontal bar.
- Private Objective-C method declarations in .m files have been removed to
reduce unnecessary code duplication (#102).
Fri Mar 01 2013 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.10.0
- Improve graphic design
- Add wooden background
- Add artwork for black/white/cross-hair stones (instead of just drawing
filled circles)
- New layout on iPad
- New icon for "continue" button in computer vs. computer games, to
distinguish it from the new "forward" button
- Features
- View board positions for moves played earlier during the game
- Replace "undo" with "discard move"
- A game that has ended can now be resumed in two ways:
- Discard the most recent move if two pass moves were played by mistake
- Select "Undo resign" from the game actions menu after accidentally
resigning the game
- Redesign of "New game" and "Game info" screens
- New user preferences
- Settings > Play view > Stone distance from fingertip
- Setting > Board position > Discard future moves alert
- Settings > Scoring > Score when game ends
- Add support for collecting logging data
- Turn this on under Diagnostics > Collect logging data
- Logging data is automatically included in a bug report
- Do not trigger the computer player when a computer vs. computer game is
restored on app launch
- Add placeholder message to "Archive" tab if there are no saved games
- Various other small GUI updates and fixes
- Bugfixes
- App no longer crashes if a computer vs. computer game is paused and the
computer passes or resigns
- Diagnostics > Bug report section is no longer disabled when computer player
resigns
- Fix various memory leaks
- GUI updates during long-running actions (e.g. app launch, load game) should
now happen always in the main thread; besides smoother GUI updates, this
should eliminate one more possible source of crashes
- Known bugs
- The resigned state of a game is lost when a game is saved or loaded; this
is not new in this release, it's just been added to the list of known bugs
- Technical changes
- Upgrade project to Xcode 4.6
- Drop support for iOS 4.3, the minimum required version is now iOS 5.0
- Add iOS 6 compatibility
- Add iPhone 5 support
- Improve 3rd party software build process
- Upgrade CocoaLumberjack to version 1.6
- Update Doxygen target to use the MacPorts path /opt/local/bin
Sun Dec 22 2012 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.9.2
- Bugfixes
- Fix for crash if Play tab is not visible and low memory conditions occur
(issue #86)
- Fix for crash if an error occurs while loading an archived game, e.g.
because the game contains an illegal move (issue #88)
- Fix for crash when Little Go thinks that a move made by the computer player
is illegal. Note that the root cause of the problem has not yet been
identified, but at least the app no longer crashes when the condition
occurs. Instead you will be asked to submit a bug report (please do!), the
game in progress is automatically saved to the archive and a new game is
started to bring the app back into a stable state. This temporary solution
will remain in place until I can track down and fix the actual bug
(issue #90).
- Fix for memory leak that occurs when the Game Info view has been selected
on the Play tab, but the Play tab is not visible and low memory conditions
occur (issue #87)
- Fix for memory leak when a bug report is sent (issue #91)
- Fix for GUI update errors on Play tab after an error occurs while loading a
game (issue #89)
Sun Dec 09 2012 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.9.1
- Bugfixes
- Another bug in the Ko detection logic is now fixed. For instance the
following sequence: Black A2, White B2, Black pass, White C1, Black pass,
White A1. If Black now tries to capture on B1, this was erroneously thought
to be illegal due to Ko.
- Technical changes
- The project's bugtracker is now hosted on GitHub
(https://github.com/herzbube/littlego/issues)
Fri Nov 23 2012 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.9.0
- Features
- 3 new settings have been added to profiles (maximum number of playout games,
maximum thinking time, ponder time). These settings provide much improved
control over the computer player's playing strength.
- Individual profile settings are now hidden in an "Advanced configuration"
screen. The user can still tweak those settings if she wants to, but there
is also a simplified "playing strength" screen where, by selecting a playing
strength, the user adjusts several profile settings in a single action,
without having to know the technical details behind each setting.
- The computer player can now be interrupted when it is thinking.
- The user can now choose to send a crash report if the app crashes (available
when the app is launched the next time after the crash). Settings are
available on the "Diagnostics" tab. Read the in-game manual for more
information.
- The user can now send send a bug report email with attached diagnostics
information file from within the app. The function is available on the
"Diagnostics" tab. Read the in-game manual for more information.
- The Game Info view now displays the currently active profile.
- Bugfixes
- Loading an .sgf file with bad content no longer crashes the app. Thanks to
Andrew Hersee for reporting this bug.
- iPhone only: The Status line is now 2 lines high and no longer truncates
texts. Thanks to Andrew Hersee for reporting this bug.
- Improved protection against data loss after a crash (preferences data is
saved more often, and the game in progress is saved after every move).
Thanks to Tripp Lilley for reporting this bug.
- It is no longer possible to enter empty profile and player names
- iPad only: The Go board is now properly resized when the interface
orientation changes while the "Play" tab is not visible
- Display an error message when an illegal save game name is entered (instead
of just silently not saving the game)
- Technical changes
- The project's source code is now hosted on GitHub
(https://github.com/herzbube/littlego/)
- The project now has a Trello board where you can see what is currently being
worked on (https://trello.com/board/little-go/4fd84c295027333d460dcc32)
- An Ohloh page now provides mildly interesting source code statistics
(https://www.ohloh.net/p/littlego)
Tue June 12 2012 "Patrick Näf" <herzbube@herzbube.ch>
- Release of version 0.8.1
- Features
- New application icon
- Added "Quick Start Guide" section to in-game help
- Bugfixes
- A bug in a low-level function, which has been present in all versions of
Little Go since its initial App Store release, has finally been found and
exterminated. The bug caused "Undo" to not work correctly in certain
situations. The error, when it manifested, did not have an immediate visible
impact in the GUI, instead it caused all sorts of follow-up problems to
occur (capturing stones might not work, suicide moves might be allowed,
marking dead stones in scoring mode might not work correctly, and in some
extreme cases it might even cause the app to crash).
Tue April 17 2012 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.8.0
- features
- iPad version with support for retina display and all interface orientations
- iPhone now supports upside-down portrait orientation
- improved in-game help
- bugfixes
- loading a game is now much faster
- drawing, especially while moving a stone around the board, now uses 10-15%
less CPU power, which improves battery life
- Ko is no longer erroneously detected in certain situations (e.g. black has
stones on A2, B1, B3, C1, C3, white has stones on B2 and C2; black now plays
on D2, white on B2; in this situation, black C2 was erroneously thought to
be illegal due to Ko)
- profiles: "reuse subtree" is now always enabled (and cannot be disabled)
when pondering is enabled; previously the two settings were independent of
each other, which was a bug
- loading archived game now works even if temporary file is still around for
some reason
- technical changes
- rewrite of Play view drawing code
- lots of new unit tests
- upgrade to iOS SDK 5.1
Tue January 3 2012 "Patrick Näf" <herzbube@herzbube.ch>
- release of bugfix version 0.7.1
- bugfixes
- loading a game with no moves is now handled correctly (previously the app
would hang and needed to be manually killed to get into a usable state
again)
- capturing moves that "almost" create a Ko are now correctly recognized as
legal moves (e.g. black A1, white A2, black D1, white B2, black C2,
white C1, previously the black move on B1 was thought to be illegal)
- it is no longer possible to place stones outside the board in the top-left
and top-right corners
- board size 7x7 no longer allows handicaps greater than 4 (selecting such
a handicap previously would result in no handicap being set at all)
Tue December 20 2011 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.7
- this is the first release published to the App Store
- features
- added application, tab bar and toolbar icons
- no longer display an alert when a memory warning is received from iOS
- rename "Debug" tab to "Diagnostics"
- user preferences
- none
- bugfixes
- dead stones are now always marked correctly (they were not marked correctly
in release builds due to an uninitialized variable)
- enabling scoring mode in mid-game made further game play impossible; this
has been fixed
- technical changes
- eliminated various memory leaks
- application startup now mostly happens in a secondary thread; this makes
it possible to run the application through Instruments
Sun December 4 2011 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.6
- features
- a stone is now displayed immediately when fingertip touches the board
- GTP engine settings are now managed in profiles (instead of as player
attributes)
- an alert is displayed, and game and user preferences are now saved as an
emergency when iOS sends a memory warning
- the game info view now displays entries for "last move" and "next move"
- cross-hair point distance from fingertip is now scaled based on board size
- default board size is now 9x9 (down from 19x19)
- new "Help" and "Credits" documents
- all license documents are now displayed in their own table view
- user preferences
- all user-defined players are removed on upgrade
- all scoring user defaults are lost on upgrade
- new user preferences for "inconsistent territory" (scoring) and
"place stone under finger" (play view)
- reorganization of Settings view into topical sections
- bugfixes
- changing a player's type (human/computer) now shows/hides the profile as
appropriate
- game info view is now dismissed when a game is loaded
- play view now correctly calculates board edge thickness
- user preference "mark dead stones intelligently" is now displayed correctly
- technical changes
- upgrade project to Xcode 4
- user defaults are now versioned
- the GTP log now displays seconds
- a lot of code cleanup
Wed November 16 2011 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.5
- features
- when a new game is started it is now possible to select a handicap (up to
9 stones in fixed locations) and a komi value
- the user can now "flip" the Play view to see an Info view which displays
information about the current game
- new accurate scoring mode
- when activated, the user can now interactively mark stone groups on the
Play view as dead or alive
- territory scoring is based on stone groups' dead or alive status
- the Info view displays detailed tabular scoring information
- scoring mode is activated automatically when the game ends, or by the
user at any time during normal game play
- the status line on the Play view now displays a message if the computer
player passed
- bugfixes
- the GTP log now displays all commands (previously some commands were lost)
- technical changes
- none
Mon October 31 2011 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.4
- features
- the GTP log on the Debug view is now a table view (the raw log is still
available by switching to the view's "backside")
- arbitrary commands can now be submitted to the GTP engine
- GTP commands can be "canned" for later or repeated submission
- interruptions (e.g. a phone call) now pause a computer vs. computer game
- sound/vibration is temporarily disabled during an interruption
- bugfixes
- none
- technical changes
- add Cocoa Lumberjack logging framework
Sun September 25 2011 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.3
- features
- computer players now have a set of GTP engine attributes that allow to
limit memory consumption and, to a certain degree, playing strength
- game archive
- a game in progress can now be saved
- existing games can be managed on a separate "Archive" tab
- the game archive is accessible from iTunes so that archived games can be
transferred to/from the iOS device when it is connected to iTunes
- the game in progress is auto-saved when the application is put into the
background so that the game is not lost if the application is subsequently
killed for any reason
- Play view now uses a grey instead of a b/w color scheme
- bugfixes
- by default the GTP engine now uses 64 MB memory only; on an iPhone 3GS with
256 MB memory this limit is sufficient that the system no longer kills the
application because it uses up too much memory
- application no longer hangs if GTP engine responds with error to final_score
- capturing moves with a single stone now work correctly
- pass moves are no longer drawn on the Go board
- toolbar buttons on Play view now use an explicit text label instead of
confusing icons
- technical changes
- less view updates on the Play view, which means less power consumption and
slightly snappier panning
- add command processor design pattern
- GTP commands can now be executed synchronously
Tue August 23 2011 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.2
- features
- players can be added/edited/removed; player attributes
- name
- is human / is computer player
- start a new game
- variable board size
- select players
- pause game in an automated game with two computer players
- undo move
- markup last played stone
- play sound and/or vibrate when computer player makes a move
- display star points for all board sizes
- user preferences
- bugfixes
- too many to enumerate
- technical changes
- updated to use Fuego 1.1
- unit test support
Fri April 8 2011 "Patrick Näf" <herzbube@herzbube.ch>
- release of version 0.1
Mon March 28 2011 "Patrick Näf" <herzbube@herzbube.ch>
- feature complete for 0.1
Thu March 24 2011 "Patrick Näf" <herzbube@herzbube.ch>
- first draft of human vs. computer implementation
Tue March 15 2011 "Patrick Näf" <herzbube@herzbube.ch>
- extremely crude computer vs. computer implementation
Fri March 4 2011 "Patrick Näf" <herzbube@herzbube.ch>
- proof of concept: create an instance of Fuego and communicate with that
instance by sending commands and receiving responses
Thu Jan 27 2011 "Patrick Näf" <herzbube@herzbube.ch>
- created project