Commit Graph

10 Commits

Author SHA1 Message Date
Marshall
0724d44ec4 - Created a new ComPlayer. It targets a particular score, and does it pretty well. It does this by counting the number of empty spaces and the number of empty spaces that can potentially be created by removing tiles then either playing to block or playing to extend the game.
- Created DumpResults.java, which simply outputs all scores in a player model so that they can be graphed.
2012-04-30 05:18:02 -04:00
Marshall
8de42a3562 - I created a ComboPlayer.java agent. It sucks and doesn't really work, but I created it. Now I'm putting it down to work on other things. 2012-04-29 20:54:34 -04:00
Marshall
60a842d729 - Reorganized the constructors in Move.java.
- Made the getBoardState method in Referee.java static.
- Created NeuralNetworkPlayer.java, though I don't know how to make the computer use it.
- Updated the Player interface to include passing the PlayerModel. Most of the current com agents ignore the data, but it is now available.
- Updated the train function in PlayerModel.java.
2012-04-29 14:19:10 -04:00
Marshall
a756aa242d - PlayerModel.java now returns the full array of output nodes instead of just their activation states. This exposes their strengths. 2012-04-29 12:49:08 -04:00
Marshall
15ed56134e - Implemented multiple users, including a selection dialog and automatic preference saving and loading.
- Integrated the ANN with the game. The network now predicts a user move, completely ignores it, and trains itself on the players actual move. This integration also included implementing two new functions. The first translates a board state to a boolean array to correspond with input nodes. The second translates a move to a boolean array to correspond with output nodes.
2012-04-29 03:22:19 -04:00
Marshall
dc11e2c48b - Implemented saving and loading of a player model. High scores are now persistent, though only for one user.
- Created a JUnit test class to test the serialization. Should be useful for later tests.
2012-04-28 23:01:36 -04:00
Marshall
a6af6df132 - Reorganized packages so that the computer agents are inside the model package.
- Added support for the player model inside Referee.java; high scores should now persist over a single execution of the program.
- Refactored PlayerModel.java to support game logging. All games are now logged so that we can track overall progress.
- Added scaffolding to allow saving and importing of PlayerModel.java. It is not yet functional, but it will be with two function implementations and then the appropriate calls.
2012-04-28 19:18:28 -04:00
Marshall
24096b50a8 - Updated the Node interface and its implementations to include a strength() function. This is a double value between 0 and 1 representing the percent activation.
- Updated the PlayerModel to fix a bug in the high score tracking.
- Created HighScoreDialog.java, which displays the high scores from a PlayerModel. In the future, it will have a "New Game" button so that it can be used to transition between games.
2012-04-26 13:04:41 -04:00
Marshall
0cfe26faf1 - Created a GameGoal class to encapsulate the expected computer behavior/target score for a game. The PlayerModel.java function getTargetScore() now returns a GameGoal object. 2012-04-26 12:08:17 -04:00
Marshall
f19c09b573 -PlayerModel classes, including a function to get the target score for a player's game and a neural network to predict a player's moves. 2012-04-19 21:05:59 -04:00