A5
Kent Dolby kad232 2101663
Dan Birman dgb72 2031443

We added a lot of functionality outside of the two required parts:

First we added "emoticon emotions" to every player in the game. As their money rises and drops the emoticon changes accordingly. There are five different icons displaying various emotional states of the player based on their cash flow. To implement this change we added pictures in the "resources" file. We added methods to Images and Table in texas.client. Because this is entirely client-side our client can run with any server and the icons will appear for the client.

The second thing we added was a fix for a major bug. If a player had 0 or negative money (by buying into a game with 0) they could effectively remain in the game with increasingly negative funds. We fixed this in Game.java by kicking players with 0 or less funds out of the game at the end of the round.

The third and most major addition is that when you start a game you are given the option of including computer players. There is a maximum number of computers, controlled by the static MAX_COMPUTERS in GameState. These computer players are controlled by a relatively simple algorithm that runs through various options depending on what round they are in to decide whether to flop, raise, or bet the minimum necessary. The AI code is commented to help clarify how this happens. Human and computer players can be in a game at the same time, but we ran out of time to implement a way to remove computers automatically when humans join. Enjoy trying to beat our algorithm ;) (we rate it as an easy).

We also found a lot of other errors that occur periodically, these were rarely due to our code, for example:

There was an error in "getNextBet()" that caused it to "hang" by returning out of the code. By replacing a "return;" call in getNextBet() with a recursive call to the method we were able to fix the error.
