I was thinking that let's say if there is a game of Blackjack or MasterMind, then we should have a class called
ComputerPal, which is how the computer interact with us (as a dealer for Blackjack or as the person giving hints for MasterMind).
And then there should be a Player object, and the way to play one game is
but I noticed that a book was just using the
main() loop to act as the player (or as the Controller of the game), calling the Dealer methods to dealer the cards, ask for player's action, etc...
1) Is this just a lazy way to model all the proper objects?
2) If more objects are to be added, who should call the
aDealer.dealCards and then ask for
aPlayer.askForAction? (because it is strange to let the Player handle all the logical steps). Should there be a
Table object that handle all these logic and then to play one round of game, use
aTable.playGame? What is a good object design for such game?