A Java-based counting up game application built using JGameGrid framework.
The Counting Up (CU) game is played with a standard 52-card deck among four players.
- Cards: Standard 52-card deck with four suits (A → 2 → ... → 9 → 10 → J → Q → K)
- Players: 4 players playing independently
- Deal: 13 cards distributed face down to each player at random
- Number cards: Worth face value (2 = 2 points, 3 = 3 points, etc.)
- Picture cards: A, J, Q, K each worth 10 points
- Starting: Player with ace of clubs starts the first round
- Turn order: Clockwise rotation
- Valid plays: Put down a card that is either:
- Same suit with higher rank, OR
- Same rank with different suit
- Passing: Players must pass if they cannot play a valid card (or choose to pass)
- Round end: When no players can play, the last player to put down a card receives points equal to the sum of all cards played that round
- New round: Starts with the player who won the previous round, who may play any card
- Game end: When one player has no cards remaining
- Remaining cards: Worth negative points
- Winner: Player with the highest total points
- Java 18 or higher
Run the game with default settings (game5.properties):
java -jar counting-up-game.jarRun the game with custom settings:
java -jar counting-up-game.jar properties/game1.propertiesThe game includes several built-in configurations:
properties/game1.properties- automatic game with 3 random players and fixed initial cardsproperties/game2.properties- automatic game with 3 random players and fixed initial cardsproperties/game3.properties- automatic game with 3 random players and fixed initial cardsproperties/game4.properties- basic game with 3 random players and random initial cardsproperties/game5.properties- advanced game with 1 random player, 1 basic player and 1 clever player with random initial cards
app/
├── src/main/java # Java source code
├── src/main/resources # Resources (properties, images, etc.)
│ ├── properties/ # Game configuration files
│ └── sprites/ # Game images
├── lib/ # External JAR dependencies
└── build.gradle # Build configuration
./gradlew build./gradlew testThe JAR file created includes all dependencies, so it can be run on any system with Java 18+ installed without needing to install additional libraries.