Project Description
This project is a GUI Texas Holdem Application. The game can be played against the computer or another person. You can enter a chatroom to talk between players to have even more fun!
============================ User Stories: Current Software
- As a poker "player/user/... " I can "blank" so that "blank"
============================ Assessment of Software
- Chat software doesn't work as intended. Add a feature to send the chat message upon pressing the ENTER key.
- Single Player Mode works as intended. The opening screen opens a new window that the player can actually play against a computerized oponent.
- Multiplayer Mode Works as expected but we have to many steps just to connect to another IP address/server! Multiplayer works the same as Single Player Mode except that the opponent is an actual person on another server.
============================ User Stories: Features that Could be added to the software to make it more useful, better, fun
- Create a rules sheet on the opening screen and the server so people can reference the rules of the game as it currently stands.
- When running the software, creating a poker game against another player takes lot of time. We can shorten this time by searching for a client already in the system.
- Creating a timer could be added to make sure the player responds back on time, if it waits to long, the player will have to fold.
- Chat server doesn't tell us that a person joined/left the chatroom.
- Upon exiting a multipler game, the server crashes instead of exiting the game for us or creating a window that tells us that the other user left the game.
- Creating a database system may be extremely helpful because it can store usernames and highscores. The best way to do this is store a temporary username as the IP address and your username and IP address when you leave the server. If time permits, this could help save highscores.
- We didn't like how you need to "PASS TURN" when you technically finish your turn. We should probably get rid of this button and instead put it in the functions instead
============================ README.md Assessment
- The README.md file is super clear for any new user to understand and start playing right away.
- We like how there is a final remarks section for the next set of UCSB CS legacy coders.
- There should be more elaboration to what the poker chat server can do and how to get it all started.
============================ build.xml Assessment
- The build functions all work perfectly and we saw no problems running all the 'ant' cases
- We could add more TestCases to be run upon writing 'ant test'.
============================ Current "Issues" Assessment
- There are lots of issues that could be addressed or added to the poker game that would add up to 1000 points (even more).
- The expectations of the issues are very clear, except it is difficult to understand where to start fixing the code!
============================ Additional Issues to Add (if any) Located Here:
- Connect the chat server and poker match at the same time when playing multiplayer games.
- Issue Link:
- See User Stories for More Issues and Suggestions
============================ Organization/Readability
- The functions are super clear with parameters defined and tested.
- Most functions are short but we may be able to shorten them even more by calling one class after another.
- The Deck consists of a Card Class that is made up by a suit and number. The Deck hold 52 Cards in an array that randomizes/shuffles, draws, deals, and draws. Players are located in another class that hold their own chips and implements Card objects hold. The pot of the totals and the responses between Players is kept in the PokerGameState file. This file can be improved by recieving parent objects instead of having individual function for each player. The final general class is the PokerGame that runs the game and shows the GUI interface where the images are displayed on the screen.
- Chat is located in its own PokerChatServer and PokerChatClient. PokerChatServer makes the display and is able to display the messages on the screen. The PokerChatClient on the other hand waits for connections between servers and uses the ActionListener to constantly update the screen upon sending and recieving.
============================ Testing Assessment
- Testing Works great except it only tests one file, the Hand class.
- We should more Test cases if we develop a Username "database" system