The Boondock Saints
No Limit Texas Hold'em
Group Members:
Scott Semonian
Matt Brinza
John O'Keefe
Hamid Tahsildoost
Index | Class | Document | Library | Source | Temp | Test | Tools | Use Cases
How to run our program:
*NOTE: To use the AI Player, you must have MySQL installed properly with a database setup by using our handvalues.sql file.
1.) Unpackage the boondockholdem.jar file in any location.
2.) Use ant runs to run server, and ant runh to run client holdem file.
The 'runh' and 'runs' targets create and run class files for the client HOLDEM.jar file and the client SERVER.jar file repectively. Also our build.xml file allows the user to simply double click on one of the two .jar files that are created after typing 'ant' at the prompt in the project directory. (server.jar to run the server, holdem.jar to run the client).
3.) The default IP address that both the server and client will try to connect to is 'localhost' (typically 127.0.0.1).
If this is the IP address from where you will be running the server, go to 'Local Run', if not:
Local/Remote Server:
4.) Run the server.jar file there by typing 'ant runs' (or type 'java -jar server.jar' if you dont have ant installed)
5.) Now you can run the holdem.jar file, using 'ant runh', from any number of computers on the LAN and connect to the IP address of the computer running the server (leave the IP address blank if you are connection to a server running on the same machine as the holdem/gui that you are running).
BEWARE: LAN IP addresses are different than WWW IP addresses. For example, you cannot access 192.168.0.1 (LAN address) from a computer not in the same LAN as yourself!
6.) As many people as you want can do step 5, but only up to the max connection of eight people can connect to the server as players, the rest will be observers!
How to test our program:
Testing:
Simply type 'ant test' at the prompt, when in the root of our project directory, to automate testing of our project.
NOTE: There will be one error that remains, because one of our testing classes does not have a copy constructor overwritten yet.
How to install MySQL and the handvalues (hand-success probabilities database)
First download MySQL from http://www.mysql.com and follow the instructions for setting up a local server on your computer.
Make sure you have followed the exact instructions as documented on the MySQL site, and setup a root password.
Download our handvalues.sql file and open a dos prompt where the handvalues file is in the present working directory,
Using our handvalues file, do the following command (from DOS): mysql -u root -p < handvalues.sql
Enter your password, the rest is automated.
You should now have a handvalues database setup with two tables (hands_suited and hands_unsuited). Login 'boondock' and password 'saints' has full access to this database.
See our Use Cases here!
See our buid.xml file!
Downloads:
Our big jar file boondockholdem.jar
Our holdem.jar file
Our server.jar file
Release Information:
Release 3:
This is the third version of the No Limit Texas Holdem game by The Boondock Saints.
The program currently works as a No Limit Texas Holdem game that runs on a LAN. It allows up to 8 players with the option to connect an AI player.
There is a very minimal list of bugs
Known Issues:
- Occasionally the AI Player will message that it CALLED when it actually CHECKED. This only occurs during specific instances when it is the big blind. The action it performs is the correct action, however the message sent before the correct action is of its previous action. (so the only bug is that the message printed is incorrect)
- When the GUI window is covered by another window, the cards/board disappear. The user must, then hit the 'Refresh' button to see everything again. We tried implementing some code that saved the drawings to a buffer, but ran into too many problems of the buffer painting over the board with a grey background, thereby blocking the majority of the JFrame.
- Duplicate usernames are allowed and may cause problems depending on the moves a player does.
- We rarely get bind exceptions, but due to the type of network messaging we use (sockets and datapackets) they are bound to occur. We simply catch these and attempt to unclog the network with a single message to all the users.
Future Plans:
More than one AI (as many as you like, with max 8 players) can play the game.
Package all the media content (sound/images) into one package and have the code call on the resources from within the package [i.e. within holdem.jar or a new package such as media.jar, which can be shared by 'holdem' and 'server']
Implementing RMI with ServerProxy pattern.
Revamp the GUI entirely, mainly to import drawn cards!
Credits:
To help us out with some of the server/client code, we relied on a great example from the book Java: How to Program.
The DeitelMessengerExample taught us everything we know about how sockets and packets work. Mucho thanks!
Thanks also to Chris Coakley for helping guide us toward using Graphics g on our GUI. (as well as a lot of other technical issues this quarter!)
CSS File cortesy Mr. Cappello
We are The Boondock Saints