BUILD 1 (2010-04-18) Successfully outputs a short result string in association football format. BUILD 2 (2010-04-18) Initial association football implementation: - Point-based rankings only - Rankings do not currently affect number of attacks - Style modifiers not yet implemented - Extra time and penalties not yet implemented BUILD 3 (2010-04-18) Implemented ranking effect on number of attacks for association football BUILD 4 (2010-04-18) - Implemented overtime (theoretically for all sports, though association football is the only implemented sport at the moment) - Shootout still not yet implemented - Note that currently any match tied at end of regulation goes to overtime; this should eventually be optional BUILD 5 (2010-04-18) - Created most of league scheduling implementation structure, though actual scheduling is not yet done BUILD 6 (2010-04-24) - Initial "quick and dirty" implementation of interdivision scheduling algorithm BUILD 7 (2010-04-24) - Initial implementation of intradivision scheduling algorithm BUILD 8 (2010-04-24) - Full scheduling algorithm cobbled together. Let's hope this works... BUILD 9 (2010-04-24) - Actually, the Build 8 one only did intradivision. Now adding interdivision. BUILD 10 (2010-04-24) - Issue existed with teams playing multiple matches per day during interdivisional play with more than two divisions. Attempting fix. BUILD 11 (2010-04-24) - Fix mathematical error in calculating required number of matchdays when an odd number of divisions are involved in interdivisional play. BUILD 12 (2010-04-24) - Rudimentary standings output (unsorted) BUILD 13 (2010-04-24) - Added points to standings output BUILD 14 (2010-04-24) - Added interface to toggle whether or not draws are allowed BUILD 15 (2010-04-24) - Added some helper functions to help with future tiebreaker implementations BUILD 16 (2010-04-24) - Final standings now sorted by points. Additional tiebreakers will be relatively easy to implement. BUILD 17 (2010-04-25) - Fixed scheduling bug that caused teams to play the same opponents over and over (and in divisions with an odd number of teams, caused one team to not play anybody). BUILD 18 (2010-04-25) - Fixed typo in code that caused overtime to be run when draws *were* allowed, but not when they weren't (should've been reversed). BUILD 19 (2010-04-25) - Further implementation of tiebreaker infrastructure. Unfortunately the tiebreakers themselves don't really seem to work anymore. BUILD 20 (2010-05-02) - Tiebreaker mechanism was choking when presented with two equal teams. Fixed. BUILD 21 (2010-05-02) - Sorting mechanism was only using the first tiebreaker provided. It will now use all available tiebreakers. BUILD 22 (2010-05-02) - Implemented style modifiers for association football BUILDS 23 through 33 (2010-05-09) - Built main screen; not yet functional BUILDS 34 through 62 (2010-05-15) - Building league creation screen - Minor data storage modification that should be invisible to end-user (build 41) BUILD 63 (2010-05-15) - Changed application look and feel to match system application is run on BUILDS 64 through 86 (2010-05-15) - Continuing to build league creation screen BUILDS 87 through 91 (2010-05-15) - Implementing save/load league ability. BUILD 92 (2010-05-15) - Adding last bit of functionality to the league creation screen, the scorinate button. BUILD 93 (2010-05-15) - Program now notifies user on successful league system save. BUILD 94 (2010-05-15) - Fixed crash that occurred when a league was defined with no divisions. BUILD 95 (2010-05-15) - Actually that just moved the crash elsewhere. We'll take a better approach: require that a league have at least one division. BUILD 96 (2010-05-15) - Attempting to scorinate an improperly constructed league should now prompt the user to fix the problem. BUILD 97 (2010-05-15) - Added new constraint: all divisions must include at least two teams. BUILD 98 (2010-05-15) - I forgot to make LeagueSchedule serializable. That's fixed now. BUILD 99 (2010-05-15) - Just realized I haven't implemented tiebreaker options yet. I have a temporary one implemented for now. BUILD 100 (2010-05-15) - Suppressed output of "empty" matchdays. - Started working on proper table output. BUILDS 101 through 104 (2010-05-16) - Building in-application results screen. BUILDS 105 through 106 (2010-05-16) - Main menu now appears centered on screen instead of at upper left corner. BUILDS 107 through 108 (2010-05-16) - Made league creation screen modal. BUILD 109 (2010-05-16) - Ensured that all dialogs are centered on the screen. BUILD 110 (2010-05-16) - Tweak to standings output. BUILD 111 (2010-05-16) - Ensured that everything is initialized to zero before attempting scorination. BUILD 112 (2010-05-16) - Improved serialization. BUILDS 113 through 114 (2010-05-16) - Changed font on results screen to monospace. BUILDS 115 through 126 (2010-05-16) - Cleaning up standings output. BUILD 127 (2010-05-16) - League system name set in the program is now saved. BUILD 128 (2010-05-16) - Draws column now omitted from standings if draws are not allowed. BUILD 129 (2010-05-16) - Adding sport selector to league creation page. BUILD 130 (2010-05-16) - More user-friendly strings to identify sports. BUILD 131 (2010-05-16) - Disabled buttons that don't currently do anything. BUILD 132 (2010-05-16) - Added ability to move teams into and out of divisions on the league creation screen. BUILD 133 (2010-05-16) - Fixed crash when pressing insert team button with no team selected. BUILD 134 (2010-05-16) - Fixed bug that caused accidental duplication of teams. - Added naming prompts on initial creation of a league/division/team, thereby saving the user a step. BUILDS 135 through 138 (2010-05-16) - Building league options panel. BUILD 139 (2010-05-16) - Fixed crash/out-of-memory error occurring when the final value in any standings column for any team was zero. BUILD 140 (2010-05-16) - Fixed minor formatting issue introduced in Build 139. BUILD 141 (2010-05-16) - Removed thousands separator from score difference column, which was causing alignment issues. BUILD 142 (2010-05-16) - Removed extraneous data from saved league files to improve I/O speed. BUILDS 143 through 146 (2010-05-16) - Display on league screen number of games each team will play. BUILDS 147 through 148 (2010-05-16) - Prevent the user from attempting to instruct teams to play each other a negative number of times. BUILD 149 (2010-05-16) - Implemented ability to save results. BUILD 150 (2010-05-16) - Ensured the proper line separator is used on all operating systems. BUILD 151 (2010-05-16) - Notified user upon successful saving of results. BUILD 152 (2010-05-16) - Restricted saved files to plain text (.txt). BUILD 153 (2010-05-16) - Upgraded load saved league function to allow user to select the file. BUILDS 154 through 157 (2010-05-16) - Updated the save league function to mirror the change made in Build 153. BUILD 158 (2010-05-16) - Implemented shootouts for all sports. BUILD 159 (2010-05-16) - Added option on league creation screen to define whether draws are enabled. BUILDS 160 through 161 (2010-05-16) - Created league resume interface. BUILD 162 (2010-05-16) - Implemented ability to scorinate a partial season. The remainder of the season is not yet available to be continued. BUILD 163 (2010-05-16) - Implemented ability to save the partial season and resume it later. BUILD 164 (2010-05-16) - Implemented ability to load the partial season. BUILD 165 (2010-05-16) - Fixed a bug when instructing the program to scorinate "the rest of the season". BUILD 166 (2010-05-16) - Fixed a bug that caused the program to re-scorinate the previous matchday when resuming. BUILDS 167 through 168 (2010-05-16) - Initial implementation of knockout tournaments, including build dialog. BUILD 169 (2010-05-16) - Okay, it might help if we actually created the matches when attempting scorination. BUILD 170 (2010-05-16) - Matches were being created with incorrect teams assigned; now fixed. BUILD 171 (2010-05-16) - Only half the teams were being used; hopefully fixed. BUILD 172 (2010-05-16) - Output formatting tweaks; draws disabled by default. BUILD 173 (2010-05-16) - Fixed crash when using a number of teams that isn't a power of two. BUILDS 174 and 175 (2010-05-16) - Went too far the other way. We'd still like to be able to use such a number of teams. BUILD 176 (2010-05-16) - Ensured all old data is flushed before beginning scorination. BUILDS 177 through 178 (2010-05-16) - Enabled importing of saved knockout competition files. BUILD 179 (2010-05-29) - Fixed crash when attempting to create new knockout competition. BUILDS 180 and 181 (2010-05-29) - Displays error message if trying to create a knockout competition with fewer than two teams. BUILDS 182 through 191 (2010-05-29) - Modifying knockout competition screen to accommodate editing of rounds. BUILD 192 (2010-05-29) - Fixed bug with teams not advancing into a round where other teams enter the competition. BUILDS 193 and 194 (2010-05-29) - Fixed bug where knockout competition screen displayed incorrect number of teams in a round. BUILD 195 (2010-05-29) - Made teams-in-round text clearer. BUILD 196 (2010-05-29) - Fixed bug when only one team advances from a round (to join one or more teams in the next round) preventing that team from advancing. BUILD 197 (2010-05-29) - Ensured that any old results are flushed before beginning scorination of a knockout competition. BUILD 198 (2010-05-29) - Ensured that the number of unassigned teams at the start of scorination is zero. BUILD 199 (2010-05-29) - Beginning to add ability to scorinate partial knockout competitions. BUILD 200 (2010-05-29) - Moving knockout competition scorination results to a similar screen to league results. BUILD 201 (2010-05-29) - Flush all old results from the string buffer before scorination. BUILDS 202 through 205 (2010-05-29) - Construction of knockout tournament resume screen. BUILD 206 (2010-05-29) - Changing structure of knockout competitions to include concept of "series". BUILD 207 (2010-05-29) - An aggregate score series whose final match required a shootout caused the series to claim no winner. This has now been fixed. BUILDS 208 and 209 (2010-05-29) - Output should now include aggregate scores. BUILDS 210 through 216 (2010-05-29) - Building knockout competition options panel. BUILDS 217 and 218 (2010-05-29) - More useful text output for best-of-X series. BUILD 219 (2010-05-29) - Implemented checking for early end of best-of-X series. BUILDS 220 and 221 (2010-05-29) - Added ability to randomize team order. BUILDS 222 and 223 (2010-05-29) - Implementation of away goals rule. BUILDS 224 through 235 (2010-05-29) - Implementation of head-to-head tiebreaker. If this actually works properly on the first go, I'll probably be celebrating so hard that development will be put on hold for a month. BUILDS 236 through 238 (2010-05-29) BUILDS 239 through 242 (2010-05-30) - Adding tiebreaker customization controls to league creation page. BUILDS 243 and 244 (2010-05-30) - Added additional tiebreaker options: - Score for - Score difference - Score ratio - Score for away from home - Team ranking points BUILD 245 (2010-05-30) - Prevented user from attempting to scorinate a league system that has no leagues. BUILD 246 (2010-05-30) - Added NSFS2 import buttons to main menu. BUILDS 247 through 249 (2010-05-30) - Resized main menu. BUILD 250 (2010-05-30) - Built initial NSFS2 import feature. - Standardized error messages throughout the program. BUILD 251 (2010-05-30) - Made the buttons added in Build 246 actually work. BUILD 252 (2010-05-30) - Made maximum rank points value user-customizable. BUILD 253 (2010-05-30) - Made team style modifiers visible and editable. BUILDS 254 through 258 (2010-05-30) - Tweaking size of UI components. BUILD 259 (2010-05-30) - When creating/editing a team, the style dialog was being populated with the team's current rank instead of its style; this is now fixed. BUILDS 260 through 266 (2010-05-30) - Made the application valuable with Java 5 for the benefit of those with somewhat older operating systems. BUILD 267 (2010-05-30) - Draws column is now always output in final standings. Previously it was never output due to a flag being improperly set, and I still can't figure out what's causing it, so this is a temporary fix. - Continuing with UI tweaks for Java 5 compatibility. BUILDS 268 through 281 (2010-06-04) - Fixed several scorination bugs that resulted in teams receiving the wrong number of attacks. - Even after this, matches were far too high-scoring compared with NSFS2. I'm having trouble figuring out what the problem is, so implementing a temporary fix of reducing all teams' style modifiers by 1.4. BUILDS 282 and 283 (2010-06-05) - Resolved elevated goalscoring issue (hallelujah!). BUILD 284 (2010-06-05) - Modified number of attacks in extra time to equal two-thirds of attacks in a regular half. BUILD 285 (2010-06-05) - Fixed bug that resulted in the outcomes of penalty shootouts in knockout tournaments not being displayed. BUILD 286 (2010-06-05) - NSFS2 import function will now read "maxpoints" attributes. BUILDS 287 and 288 (2010-06-05) - All dialogs should now be properly Java 5 compatible. BUILD 289 (2010-06-05) - Initial implementation of baseball. BUILDS 290 and 291 (2010-06-05) - Debugging initial baseball implementation. BUILD 292 (2010-06-05) - Initial formula was a fine example of "the first shall be last and the last shall be first". Now reversed. BUILD 293 (2010-06-05) - Ensuring the maxRankPoints option is always set properly for both leagues and knockout tournaments. BUILD 294 (2010-06-05) - Knockout competitions were always scorinating association football regardless of the sport selected by the user. This is now fixed. BUILDS 295 and 296 (2010-06-05) - Fixed crash when an aggregate score baseball series resulted in a tie. Now extra innings are scorinated properly. BUILD 297 (2010-06-05) - Corrected error in score output when an aggregate score baseball series requires extra innings in the final game. BUILD 298 (2010-06-05) - Initial implementation of American football. BUILDS 299 through 303 (2010-06-05) - Tweaked number of attacks, as the initial settings were producing scores about 35% higher than I wanted. BUILD 304 (2010-06-06) - "Matches can end in a draw" checkbox is now selected by default. BUILD 305 (2010-06-06) - Removed the Options button from the main screen, since that portion of the program hasn't been implemented yet. BUILDS 306 through 308 (2010-06-06) - Made file filter actually work properly. BUILD 309 (2010-06-06) - The program will now automatically add the appropriate file extension if not explicitly specified by the user. BUILD 310 (2010-06-06; initial beta release) - Final pre-beta code cleanup, no functionality changes. BUILD 311 (2010-06-06; second beta release) - Corrected bug introduced in build 309 that caused output files not to be saved in the correct location. BUILD 312 (2010-06-08) - User can now define whether a knockout tournament takes place on neutral ground. BUILDS 313 through 315 (2010-06-08; 315 = 3rd beta release) - Allows user to shift teams up and down when setting up a knockout competition. BUILD 316 (2010-06-08) - Prevented use of negative ranking points for teams. - Ensured that a league cannot be created with a maximum rank points value of zero. BUILD 317 (2010-06-08) - Added error codes to some error messages that did not have them. BUILDS 318 and 319 (2010-06-09) - Fixed bug with randomize teams function not working properly. BUILD 320 (2010-06-19) - Fixed bug that caused an error when attempting to save a knockout competition in progress. - Tweaking association football settings for final fine-tuning. BUILD 321 (2010-06-19) - I did something stupid in a previous build that effectively disabled style modifiers. That has been fixed now. - Added team shift up/down buttons to league creation screen to match those on the cup creation screen. BUILD 322 (2010-06-19) - More association football tweaking. BUILD 323 (2010-06-20; final v3.0.0 release) - Minor interface cleanup.