Skip to content

Latest commit

 

History

History
47 lines (29 loc) · 3.92 KB

M16_lab08.md

File metadata and controls

47 lines (29 loc) · 3.92 KB

Intro

Poker Single Player begins to follow a "Factory Design" pattern for PokerGame. Deck is in charge of the deck, Hand is in charge of the player's hand, Player has a hand, TableCard holds the table cards, Poker Game holds Players, a Deck, and TableCards. When we rewrote the Poker Game just for a single player, we completely got rid of our multiplayer version in favor of an understandable design. This is where you come in, we left a good basic heirarchy of the single player game and we want you to extend our PokerGame class to create the multiplayer aspect of the game through the server. See the many issues we created last year and see which ones you can tackle. Feel free to restart the idea of the Chat Button, we kept it there because it had no influence with the Single Player game when we rewrote the code. A good idea is that you should develop a better server with a hierarchal structure to make the PokerServer (aka MultiPlayer Server). Future improvements and ideas that you can do are improving the GUI layout and creating a new class to take on GUI responsibilities of the PokerGame. You can add better animations to the cards (and maybe even poker chips)! The rules sheet opens in a new window, rather, you can add it directly within the PokerGame. You can also integrate chat with the multiplayer game and disable it from the singleplayer mode. This game actually has tons of room for improvement and we can't wait to see what you come up with!

Existing Issues

#33 "Factory Design" - Tackle this One First!!! ucsb-cs56-projects#33

Restructure the code to more of a "Factory Design" possibly "Abstract Factory Design style of code. Because there is so much clutter and each class heavily depends on other classes. This is the main reason why large portions of chatting fails, functions becoming extremely long and become repetitive "public" work, there was no specific design pattern we noticed to allow future legacy code writers to add on to the existing code. For example, why does Hand.java hold all of the cards "live" in the game both on the table, it just doesn't make sense. Also, why does Hand.java calculate who one the game, it doesn't make sense too. Most importantly, why is every method that should not be accessed in other functions "public" instead of "private." Everything is just unorganized in structure and definition!

#39 Create a Poker Server that also works with Chat Server ucsb-cs56-projects#39

Create a Server interface that relays information between the chat and the poker game servers without needing two separate classes.

#38 Create Cool Animations ucsb-cs56-projects#38

Make Animations of the pictures of each card to look like the are being dealt on the screen.

#40 TestCompareHands.java ucsb-cs56-projects#40

Create a file to test all combinations of hands and table cards to see if comparing actually works.

#37 Rules Sheet within Gam ucsb-cs56-projects#37

Make the Rules sheet a side panel within the Poker Game instead of creating a new window.

#36 GUI Class ucsb-cs56-projects#36

Create a new file to handle all of the Poker Game GUI stuff located at the bottom of PokerGame.java file.

#35 Fix JavaDoc Functionality ucsb-cs56-projects#35

Ant javadoc works but there are tons of errors and warnings upon compiling. Add parameter and class definitions before each function so there are no more errors and warnings when running 'ant javadoc.'

#23 Integrate chat into multiplayer ucsb-cs56-projects#23

Right now chat needs to be set up separately from the multiplayer server of the game. Make chat automatically set up and display when connecting to a multiplayer server.