RJKTQ is an interactive trivia quiz game developed in Python 3.x. The game is designed to challenge players with a variety of questions related to current affairs. Players can enter keywords as answers and track their performance through an integrated ranking system. The game also features administrator functionality to monitor and manage players, questions, and game data.
- RJKTQ - RJK's Trivia Quest
- Features
- File Storage Structure
- Requirements
- How to Run the Game
- Game Flow
- Players and admins must create an account or log in to access the game. Admin accounts are granted special privileges.
- User data such as usernames, passwords, player statistics (rank, level, high score, matches, and wins), and admin information are securely stored in binary and CSV files.
- Quick Play: Players can engage in a single round of 20 randomly selected questions. Performance in Quick Play is rewarded with experience points (EXP), which are essential for leveling up.
- Lifelines: Players have access to 3 lifelines during each round of Quick Play, which include options like Expert, Friend, and Magic 8 Ball to assist in answering questions.
- The game features a Leaderboard that ranks players based on their highest scores, levels, and achievements.
- Achievements are awarded based on special in-game tasks and contribute to a player’s ranking.
- Admins can manage questions, answers, and leaderboard data via the Settings menu.
- Special privileges include adding and clearing stored game data, modifying admin clearance keys, and adjusting the buffer text displayed during the game.
- Admin accounts have restricted access to gameplay but can fully manage game settings and player data.
- Players can earn various achievements by completing specific tasks or reaching milestones such as obtaining high scores or leveling up.
- Achievements are displayed on the player profile and can be used to unlock additional avatars.
- Players can view their profiles, including statistics, avatar, and achievements. Custom avatars can be selected based on achievements earned.
- Admin profiles display their admin rank (primary or subordinate).
- Player and admin account data is pseudo-encrypted and stored securely in binary files.
- The system includes confirmation prompts to minimize user errors and maintain data integrity.
- Sensitive admin actions, such as modifying stored data, are protected by an admin clearance key.
- Player data is stored in
2.dat
, and admin data in3.dat
. - Leaderboard data is stored in
4.csv
, while questions and their corresponding answers are saved in5.dat
and6.dat
respectively. - Buffer text used in various parts of the game is stored in
7.txt
and8.txt
. - Admin clearance key is stored in
1.dat
.
- Python 3.x: The game is developed using Python and relies on its built-in libraries, along with specific third-party modules.
- Python module:
tabulate
is required to display data in a well-formatted table. - All files from the RJKTQ folder are essential for running the game, including the
.dat
and.csv
files for storing game data.
To install the required module, run:
pip install tabulate
-
Ensure all necessary data files are located in the
data
folder within the working directory. -
Launch the game by running the
start.py
script:python start.py
-
The game will prompt you to either create a player or admin account or log into an existing one.
-
Once logged in, players can access the Quick Play mode, view the leaderboard, or check their profile. Admins can access the settings to manage the game’s data.
- Player login/creation: Players are guided through creating a username and password, which is validated against predefined criteria.
- Game start: Players answer 20 random questions, and their scores are calculated at the end of the match.
- Lifelines: Lifelines can be used to assist with answering difficult questions.
- Leaderboard: The leaderboard is updated based on player performance, ranking users by score, level, and achievements.
- Achievements: Various achievements are unlocked through gameplay and are displayed on the player’s profile.