This question already has an answer here:
I'm making revisions to a Console version of contract bridge I made in Java. The source can be found here: Bridge
So most of the code is terrible and I've been trying make improvements wherever possible. The game runs but the design is bad.
It currently has three classes: Card Deck BridgeConsole
All the game related code is in BridgeConsole but I've been told it's too long. So I'm considering separating some of the code in there. A GameState (renaming BridgeConsole to Main) class comes to mind but I'm not sure how to implement it. I've seen examples online where they have methods like init(), cleanup(), draw(), etc. but I'm not sure how the to properly implement it in my game. I'm also not sure where the methods I have to run the AI logic would go. Another possibility is instead of using ArrayList to hold the players hand, just create a Hand Class. Also removing all the static methods and variables I have in the BridgeConsole class.
I am looking for some suggestions or tips on good design for this particular project. I'm not satisfied by the being able to run the game, I'd for the code to be better so any help would appreciated.