A collection of small, delightful mini-games developed for quick fun. Dive into our 'minimanimo' world of bite-sized entertainment.
Minimanimo is a console (CLI) mini-game collection project designed to practice Javaโs object-oriented programming principles and interface-based architecture. Users can enjoy several simple games after nickname authentication, while the Maven build system and CSV-based ranking system provide a structured environment for progression and competition.
MiniManiMo provides four mini-games that run in a console environment: ChamChamCham, Rock-Paper-Scissors, Number Baseball, and Number Up-Down.
Each game uses Javaโs basic console I/O functions and implements the MiniGame interface, ensuring modular and maintainable structure.
User data (nickname and best scores for each game) is stored and managed through local CSV files.
This project goes beyond simple game developmentโits primary goal is to enhance junior developers' technical capabilities through structured design.
-
OOP Design Practice (Interface-Centric)
The separation of roles betweenMiniGame,User, andUserManagerdemonstrates the OpenโClosed Principle (OCP) and encourages writing modular, extendable code. -
Mastering Data Persistence
Instead of a full database, CSV file I/O is used to safely save and load data, allowing developers to gain experience with lightweight persistence handling.
Letโs continue adding more mini-games to make MiniManiMo even more fun!
-
Java Development Kit (JDK): Version 17 or higher
-
Build Tool: Maven
-
Git: Installed and configured
git clone https://github.com/bbirribbarribbo/minimanimo.git
cd minimanimo
Build (Create Runnable JAR)
mvn clean package
Executable output path: target/minimanimo-1.0-SNAPSHOT.jar
๐ฎ Run the Game
java -jar target/minimanimo-1.0-SNAPSHOT.jar
Minimanimo is a console-based collection of arcade mini-games. Follow the instructions below to start playing.
When you run the program (GameLauncher), the authentication menu will appear.
- New User? Select
2to Register.- Rule: Nicknames must contain letters and numbers only (no spaces or special characters).
- Returning User? Select
1to Login with your registered nickname.
[Authentication Menu]
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
1. Login (Existing User)
2. Register (New User)
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
0. Exit
>> 2
Enter New Nickname (or 'q' to cancel) >> user1
Registration successful! You are now logged in.
After logging in, choose a game from the list by entering its number.
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Please select a game to play:
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1. ChamChamCham
2. RPS (Rock Paper Scissors)
3. Baseball (Number Baseball)
4. UpDown
0. Exit
>> 3
A game of reflexes where you try to look in a different direction than the computer.
- Input: Enter
L(Left),C(Center), orR(Right). - Win: If you look in a different direction than the computer, you gain +1 point.
- Lose: If you look in the same direction, the game ends.
- Quit: Enter
0to stop.
A survival mode game where you accumulate points until you lose.
- Input:
1(Rock),2(Paper),3(Scissors). - Scoring: Win (+3 points), Draw (+1 point), Lose (Game Over).
A logic puzzle to guess a secret 3-digit number.
- Goal: Guess 3 unique digits (1-9) (e.g.,
123). - Hints:
- Strike: Correct digit in the correct position.
- Ball: Correct digit but in the wrong position.
- Out: No matching digits.
- Life: You have 10 attempts.
Guess a random number between 1 and 100.
- Goal: Find the secret number within 10 attempts.
- Hints: The game will tell you if the target number is Higher (Up) or Lower (Down) than your guess.
After a game ends, your score is displayed along with the Top 5 Ranking for that game.
- New high scores are automatically saved to the database.
Good game! (Your Score: 8, Best Record: 5)
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[INFO] Top 5 users for Baseball:
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Rank | Nickname | Score
--------------------------------------
1 | master | 9
2 | user1 | 8
...
After checking the ranking, choose your next action:
1. Play Again: Restart the current game immediately.2. Main Menu: Return to the menu to choose a different game.0. Exit Program: Close Minimanimo.
- Quit Anytime: Enter
0during any game to quit or return to the previous menu. - Data Persistence: All user profiles and high scores are saved in
users.csv, so your records remain even after restarting the program.
| Class/Module | Role |
|---|---|
| MiniGame (Interface) | Defines the basic contract of game features and provides the required methods that each mini-game must implement. |
| User (Class) | Stores the user's nickname and best score data for each game. |
| UserManager (Class) | Handles CSV data management, nickname authentication, score updates, and ranking logic. |
| GameLauncher (Class) | Entry point of the program; manages user menus and main game flow. |
All mini-games are played against the computer (random logic).
The game ends either upon a loss (ChamChamCham, Rock-Paper-Scissors) or upon success (Number Baseball, Number Up-Down).
| No. | Game Name | Ranking Criteria (Goal) |
|---|---|---|
| 1 | Cham Cham Cham | Number of successful rounds (consecutive) |
| 2 | Rock Paper Scissors | Total Score (Win +3, Draw +1) |
| 3 | Number Baseball | Remaining attempts (10 โ attempts used) |
| 4 | Number UpDown | Remaining attempts (10 โ attempts used) |
Our team ensures project stability through a professional collaboration workflow.
-
Workflow:
We follow the GitHub Flow defined in the CONTRIBUTING.md file.
All contributions start from a new branch and go through a pull request and code review before being merged into themainbranch. -
CI/CD:
Every piece of code is automatically built and tested using GitHub Actions. -
Team Roadmap:
The project MVP consists of 11 issues and detailed role assignments and the full roadmap can be found in Sections 4 & 6 of CONTRIBUTING.md. -
Kanban Board:
We use GitHub Projects (Kanban board) to track all issues.
Each task moves through the workflow: Ready โ In Progress โ In Review โ Done.
If you need help or have any questions regarding the project, please use the following channels.
Use the Issues tab on GitHub.
For security vulnerabilities or Code of Conduct violations, please contact:
| Responsibility | Name | |
|---|---|---|
Interface Design (MiniGame), Number Baseball Logic, Console UI, Updated README. |
Kim Gyeongyoon | gracekim6531@naver.com |
UserManager (CSV I/O), Number UpDown, Console UI, Wrote CODE_OF_CONDUCT. |
Choi Juyoung | hahalove79@naver.com |
User Class, Cham Cham Cham, Kanban Mgmt, Code cleanup & organization, Managed LICENSE and .gitignore. |
Kwon Sihyeon | sihyun050305@gmail.com |
GameLauncher (Menu/Login), Rock Paper Scissors, Created initial folder & file structure, Wrote CONTRIBUTING.md. |
Park Soyeon | amypark310@gmail.com |
This project is distributed under the MIT License.
For more details, refer to the LICENSE file.