Chinese Checkers Competition
Milestone Week 8
Mark Barry Jonathan Davis James Schutt Jon-Robert Almanza Nelson Bonilla Victor Meyerson
It looks nice. The
AI was better than a week ago. It runs smoothly. Easy to operate. Pushing move button for
AI get slightly annoying but helps you see where the AI moves. AI still wasn't
extremely challenging but competitive and makes decisions quickly. A few AIs lacking in
direction and goals in game.
- Rob Dahl , third-year civil engineering
student
1. It would be helpful to have game cover full screen. Items open in
background could be distracting.
2. After a player is selected it would be helpful to show on screen who is playing as it is easy to forget. This occurs when evaluating each player.
3. Startup is intuitive and appearance is excellent. Manipulation is easy and allows for change of mind with the clear button.
4. JR, Victor, Nelson and Jonathan seem slow and Victor and Nelson hold back marbles at start area causing frequent "cat" games.
5. Mark and James seem fast.
6. It would be nice if once a 2 player game is completed (when one player fills the other side) that an end game notice appears. Perhaps declaring a winner.
7. The "log" button appears non functional.
8. It would be helpful if the AI side would automatically move after a short time instead of having a manual move.
9. A little help area would be nice explaining a few basic rules. The need to have Java installed first is an example.
10. Mark was the only one I couldn't beat. His was fast also.
11. It would be nice if the game dispensed cash to the human winner.
12. The game seems to be accurate with no hang-ups or freezes or abnormal behavior.
- Ronald Barry, Retired from Sherriff's
Department and father of college student
Okay, at least this Chinese Checkers game was simple enough for even me to figure out how to move the checkers. Could definitely see different styles and/or strategies in the different AI's when you play one on one. In a big game with 6 players, all the AI's moved relatively quickly except two, which discouraged the human player from even including those two in the game.
- Julie Barry, mother of college student
My AI attempts to implement the Alpha-Beta Pruning version of Minimax. However, I was never able to determine a suitable evaluation function that was truly minimax, particularly with up to 6 players to deal with. In the end, all the evaluation function does is take the sum of the distances of the player's marble to the last goal hole. It does not take into account the positions of the other players' marbles at all. Every time that I tried to implement such an addition, my AI actually got worse. So, my attempt at minimax is very much a greedy algorithm. When determining each player's move, that player merely tries to set it up so that they can get to the goal as quickly as possible, regardless of how that helps or hinders the opposing players.
Unfortunately minimax - even with pruning - is not really suited for Chinese Checkers. My AI is only able to look up to 3 moves ahead without showing any processing delays. At present it is set to look 4 moves ahead. At times that means little to no processing delay, and sometimes in the realm of 20 seconds. So, if there are any more than 3 players playing, my AI is not even able to look ahead one of its own moves. It plays decently just the same, but a human shouldn't have too hard a time beating it.
Detailed discussion about each player's AI will come in the final documentation.
Group member Victor has this to say about some extra features coming soon (but not by milestone 8):
Well there have been some significant changes (or at least there intends to be). I have added a Step/AutoStep Panel (not working at the moment). This is similar in look and nature to its counterpart in the BotEnvironment. Its function is intended to be the same as the BotEnvironment. I have also added a Log Dialog (View -> Log...). It has tabs for the various parts of the project. Also the Player class now has a log method that accepts a string and puts that string on the appropriate tab. Again this is similar to the BotEnvironment. Yay... no more System.out.println(string) just a simple log(string) and it should work.
We have two slight variations of the Chinese Checkers game. Version 1 does not
give hints to human players. Version 2 does give hints to the human players.
1.) No hints version
2.) Hints version
To run the application, download one of the two zip files above, unzip and run
"run.bat".
Note: When it's the AI player's turn, click the "Move" button to make
it move.