An overview of the Blackjack Card Game: Java & Object-Oriented Programming. Chapter 5.
While reading through chapter 5 of text, I reviewed the algorithm for the Blackjack game provided in text and attempted to not only compile and to make it run. I also reviewed another blackjack game online, went through code line by line and although I am still having some challenges getting these two card games to compile without errors, here are a few of the important points that I picked up from these games.
- Both games are different in terms of their implementation and gameplay.
Key differences:
Card Game 1: Source: hundredvisionsguy: Create a Java Card Game Project using OOP: https://www.youtube.com/watch?v=5FxWZOV3f9A&list=PLlmV8hCw8wblhfOeesNFABDq4gQHc2CL_ :Accessed 20th December 2023
Components:
- Game Class: Main class for running the game. It creates a deck, deals cards to players, and shows hands.
- Card Class: Represents a playing card with a rank, suit, and whether it's face up or down.
- Rank Enum: Defines the ranks of cards (e.g., Ace, King, etc.).
- Suit Enum: Defines the suits of cards (e.g., Hearts, Spades, etc.).
- Hand Class: Represents a player's hand, with methods for adding, clearing, flipping cards, and calculating total points.
Gameplay:
- Players are dealt hands from a shuffled deck.
- Players can flip their cards.
- The dealer's first card is flipped.
- The total points for each player's hand are shown if all cards are face up.
Card Game 2: Source: Eck, D. J. (2019, July). Introduction to Programming Using Java (Version 8.1). Accessed 15th December 2023
Components:
- HighLow Class: Main class for playing the HighLow card game. Manages game flow, scoring, and user interactions.
- Deck Class: Represents a deck of playing cards with methods for shuffling, dealing, and checking the number of cards left.
- Card Class: Represents a playing card with a suit and value.
- Rank Enum: Constants for the card ranks (Ace, Jack, Queen, King).
- Suit Enum: Constants for the card suits (Spades, Hearts, Diamonds, Clubs, Joker).
Gameplay:
- Users play a simple card game (HighLow) where they predict if the next card will be higher or lower.
- The deck can include Jokers.
- Users play multiple games, and the average score is calculated and displayed.
Key Differences:
1. Game Type:
- Card Game 1: Traditional card game with hands and a dealer.
- Card Game 2: HighLow card game where users predict the next card.
2. Components:
- Card Game 1 has separate classes for Card, Rank, Suit, Hand, and Game.
- Card Game 2 has classes for HighLow, Deck, Card, Rank, and Suit.
3. Game Flow:
- Card Game 1 deals hands to players, flips cards, and shows totals.
- Card Game 2 involves predicting if the next card is higher or lower.
4. Enums:
- Card Game 1 uses Rank and Suit enums for card properties.
- Card Game 2 uses Rank and Suit enums along with additional constants.
5. Deck Handling:
- Card Game 1 does not explicitly show deck handling.
- Card Game 2 includes a Deck class with methods for shuffling and dealing.
6. User Interaction:
- Card Game 1 doesn't involve direct user input.
- Card Game 2 requires user input for predicting the next card.
- Overall, these are two distinct card games with different rules and implementations. Card Game 1 is more traditional, while Card Game 2 is a simplified HighLow game.