I'm Thinking of a Number...Project
This project was around creating a guessing number game.

This project was developed as part of my Intro to Computer Science course, where I was tasked with creating an interactive game that would challenge users to guess a randomly generated number between 1 and 50. The game’s goal is simple but engaging: users are given six attempts to guess the correct number. Upon launching the game, the player starts by making an initial guess. After each attempt, the system provides feedback, indicating whether the guessed number is too high or too low. This feedback helps guide the player toward making more informed guesses with each try. The player continues guessing until they either correctly identify the number or exhaust all six attempts. If the player successfully guesses the correct number within the allowed six attempts, they win the game. However, if they use up all six chances without guessing the number, the game ends, and the computer wins. The game then provides an option to restart and try again.

At the top of the screen, you'll find the main game interface, where you can interact with the game and make your guesses. The text box allows you to input your guess and submit it to the system, or reset the game entirely if you wish to start over. Below the game area, you can track your progress with a display showing how many guesses you have left.

While playing the game, several key statistics are automatically tracked to give you an overview of your performance. You can view your total number of wins, the number of times the computer has won, the total number of rounds played, and the average number of guesses it took to win.

As you play the game, you can unlock various achievements by reaching specific milestones, such as completing the game in a particular mode, losing to the computer, or enabling the “cheating” option.

I’ve also added several settings to allow you to customize your gameplay experience. You can choose your preferred difficulty level, which adjusts the number of attempts available based on the setting. Additionally, you have the option to keep the instructions visible throughout the game, ensuring you always have guidance. For a more adventurous challenge, you can enable the "cheating" feature, which reveals the number the computer is thinking of.
One of the most advanced settings I've made is my "Developer Mode," which can be found under the settings menu. It allows you to run commands that change, fix, or execute specific functions and variables in the game. This feature is intended for users who want to explore the game beyond the usual gameplay experience. By enabling developer mode, you unlock a range of powerful tools that let you control various aspects of the game’s behavior.
To activate developer mode, simply enter the code "1234" when prompted. Once enabled, you’ll gain access to the "enter command" section, where you can input commands to interact with the game. These commands allow you to view and manipulate global variables, trigger functions, and even manage achievements directly.
There are several global variables you can control, such as the target number to guess, remaining attempts, player points, computer points, total rounds, and more. With developer mode, you can view the current values of these variables or even change them if needed.
In addition to the variables, developer mode also allows you to manage achievements. You can earn achievements without completing the usual requirements, or revoke them entirely. This includes both standard achievements and hidden ones, such as the secret achievement.
You can also trigger various game functions, such as generating a random number, submitting guesses, resetting the game, and saving settings.
Here are some of the commands you can use in developer mode:
/variable find [GlobalVariable] – Find the current value of a global variable.
/variable fix [GlobalVariable] – Fix a variable’s value if it’s not functioning as expected.
/achievement earn [Achievement] – Earn an achievement without completing the usual requirements.
/achievement revoke [Achievement] – Revoke an achievement and set it as "Not Completed."
/variable change [GlobalVariable] – Change the value of a global variable.
/function fire [Function] – Execute a function, though some may be unstable when used this way