Chinese Checkers Competition
Milestone Week 8

Mark Barry        Jonathan Davis        James Schutt        Jon-Robert Almanza        Nelson Bonilla        Victor Meyerson

 

  1. Overview

    The Chinese Checkers game is in good working order.  There are six AI players to choose from when starting a game.  Any combination and number (from two to six) of human and/or AI players is possible.  Each AI was written by a separate group member and each one can play Chinese Checkers, more or less.

    Most of the changes since last milestone have taken place within each member's own code.   Most of us have gone from an AI that moves marbles randomly to a more "intelligent" AI player.  So the implications of these changes include AI players that appear more intelligent but also take longer to make decisions.  Some of the group members who utilize a Minimax tree for decision-making are experiencing "less than instantaneous" moves from their AI players.  This has created a bit of an inconvenience as human players become impatient waiting for the AI player to make its move.

    Our game has meet most of the important requirements.  Some of our original requirements are more about extra features rather than necessity.  A few requirements we have not met are the following:

    - Ability to save and resume games.  Nice feature but not necessary and we didn't get to it.

    - Keep a running clock for timestamps.  Nice feature but decided it wasn't really worth much.

    - Allows user to set the difficulty of the AI per player.  Didn't have time to get tackle this.  Had enough trouble getting our AI players to play correctly at all.

    - Agent must submit move decision in reasonable amount of time.  We found it would be really hard to enforce this.  Some AI players take several seconds to calculate a move which can really slow down the game.

    - Agent must know its goal (how to win a game) and eventually meet that goal. The agent cannot randomly move its pieces around forever.  It was up to each group member to make sure his AI didn't do this.  A few group members have great AI players but a few bugs cause problems with the AI player's end-game.  So unfortunately there are a few that get close but can't successfully complete a game.

    Overall in our opinion our Chinese Checkers game has been a big success with all we've put together in eight weeks.

     
  2. User Feedback

    Below are a few candid comments on our game from some evaluators:

    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


  3. System Design Changes

    There have been no major modifications to the design of the system since last milestone.   Any changes have come about through modifications to each group member's own code.

    Group member Jonathan has this to say about his AI:

    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.

     

  4. Prototype and Implementation

    The game has remained largely unchanged in appearance and useability since last milestone. There were a few bugs in hole naming/referencing and detecting if a player had finished.   These were relatively minor and were corrected.  Appearance of the GUI hasn't changed since last milestone.  Performance may have changed in individual AIs depending upon the Minimax tree depth or other things set by individual group members.   A few extra features that Victor mentioned above might be on their way soon.

     
  5. Evaluation Issues

    For this milestone we have not done formal testing and evaluation of the AI players.   Our testing thus far has been very informal.

    As mentioned before, a few AI players do very well but are not able to fully complete a game.  This is unfortunate as it makes it difficult to evaluate "the best AI player".

    AIPlayerMark is probably the "best" player overall.  This AI makes the quickest moves and performs very well.  AIPlayerMark is roughly on par with a beginner to intermediate human player.  AIPlayerMark can beat human player Mark about half the time.  AIPlayerMark is fully capable of completing a game.  As other AI players have trouble with end-game, AIPlayerMark has no trouble finding its way to the goal.

    Also, refer to some of the evaluator comments on their take on particular AI performance.

    (At the time of this writing, the milestone 6 evaluation from team 7 is not available!   So we don't have any suggestions from that to take into consideration.  :-o   )