- Purpose
- Features of the software
- Installation Instructions
- Usage Guide
- Feedback
- Contribution
- Contributors
The purpose of this project is to modernize the classic Mancala game by integrating engaging features, such as:
- AI opponents with adjustable difficulty levels.
- A dynamic leaderboard for players to track and compare scores.
- SMS notifications to keep players updated on their leaderboard position and gameplay activity.
Additionally, this project was designed with the following objectives:
- User Experience:
- Provide a fun and intuitive gaming experience for Mancala fans.
- Create a competitive environment through a real-time leaderboard.
- Educational Goals:
- Demonstrate clean architecture principles (e.g., separation of concerns, SOLID design).
- Gain hands-on experience with third-party API integration.
- Multiple difficulty levels: The program offers 3 difficulty levels - Easy, Medium, Hard. This allows user to choose a challenge suited to their skills and experience. You can select the difficulty level using the dropdown menu as shown below, or choose Randomizer3000 if you want a random difficulty level.
-
Cancel game button: The player can choose to cancel and restart the game at any time.
-
View Leaderboard: The leaderboard is beside the game panel and is constantly being updated, allowing the player to see how they are doing compared to the rest of the players.
-
Send message to the user: If the user chooses to receive SMS messages, they will receive an SMS message after every game they play describing their current rank on the leaderboard.
- You will need to install java to run this program.
- The program is compatible with OpenJDK 23
To utilize SMS notifications, follow these steps:
-
Sign up for Twilio:
- Visit the Twilio signup page.
- Be sure to enter the phone number you would like your notifications to be sent to.
- Complete the verification process to access your
Account SID,Auth Token, andTwilio Phone Number.
-
Set up Twilio credentials:
- Navigate to the following file path:
src -> main -> java -> us.jonathans -> app -> AppBuilder - Enter your Twilio credentials in the appropriate fields.
Example screenshot:
- Navigate to the following file path:
-
Launch the Program:
- After installation, run the program to open the Mancala game interface.
-
Enter Details:
- Provide your username.
- Optionally, enable SMS notifications and enter your phone number.
-
Select AI Difficulty:
- Choose the engine difficulty level (
minimax_easy,minimax_medium, orminimax_hard).
- Choose the engine difficulty level (
-
Start Playing:
- Press the Start button to initialize the game. Stones will appear on the Mancala board.
-
Cancel or Stop:
- Use the Cancel button if you need to stop or reset.
-
Leaderboard and Notifications:
- After each game, your score is submitted to the leaderboard.
- If SMS notifications are enabled, you will receive updates about your rank.
Example interface screenshot:
Take the survey here: Jancala Survey. To ensure your feedback is helpful:
- Provide clear, concise answers to the questions asked.
- Ensure your responses are constructive and directly address the specific issues or suggestions.
- Avoid vague or off-topic comments.
What to Expect After Submitting Feedback: A contributor will review your feedback promptly. If the feedback is reasonable and aligns with the project goals, the team will aim to implement your suggestions in a timely manner.
If you would like to contribute to the project, you can make a fork of the repository on Github and work on it as you wish. However, if you wish to have your code merged to this repository, please make a branch on your forked repository and work on that branch, following all the naming conventions, code organization, and adhere strictly to clean architecture. To make a good pull request, name your branch according to the feature you are working on and write descriptive commit messages and title. After you make a pull request, at least two of the contributors would have to review and approve your pull request before it can be merged.


