diff --git a/GameEngine.cs b/GameEngine.cs new file mode 100644 index 00000000..5ac2502e --- /dev/null +++ b/GameEngine.cs @@ -0,0 +1,127 @@ +namespace MathGame +{ + internal class GameEngine + { internal void Addition() + { + Random random = new Random(); + var score = 0; + + for (int i = 0; i < 5; i++) + { + var num1 = random.Next(1, 10); + var num2 = random.Next(1, 10); + Console.WriteLine(num1 + " + " + num2 + " = ?"); + int result; + while (!int.TryParse(Console.ReadLine(), out result)) + { + Console.WriteLine("Invalid input. Please enter a number."); + Console.WriteLine(num1 + " + " + num2 + " = ?"); + } + if (result == num1 + num2) + { + Console.WriteLine("Correct!"); + score++; + + } + else + { + Console.WriteLine("Incorrect! The correct answer is " + (num1 + num2)); + } + } + Helpers.ShowScore(score); + Helpers.AddScore(score, "Addition"); + + + } + internal void Subtraction() + { + Random random = new Random(); + var score = 0; + + for (int i = 0; i < 5; i++) + { + var num1 = random.Next(1, 10); + var num2 = random.Next(1, 10); + Console.WriteLine(num1 + " - " + num2 + " = ?"); + int result; + while (!int.TryParse(Console.ReadLine(), out result)) + { + Console.WriteLine("Invalid input. Please enter a number."); + Console.WriteLine(num1 + " - " + num2 + " = ?"); + } + if (result == num1 - num2) + { + Console.WriteLine("Correct!"); + score++; + + } + else + { + Console.WriteLine("Incorrect! The correct answer is " + (num1 - num2)); + } + } + Helpers.ShowScore(score); + Helpers.AddScore(score, "Subtraction"); + } + internal void Multiplication() + { + Random random = new Random(); + var score = 0; + + for (int i = 0; i < 5; i++) + { + var num1 = random.Next(1, 10); + var num2 = random.Next(1, 10); + Console.WriteLine(num1 + " * " + num2 + " = ?"); + int result; + while (!int.TryParse(Console.ReadLine(), out result)) + { + Console.WriteLine("Invalid input. Please enter a number."); + Console.WriteLine(num1 + " * " + num2 + " = ?"); + } + if (result == num1 * num2) + { + Console.WriteLine("Correct!"); + score++; + + } + else + { + Console.WriteLine("Incorrect! The correct answer is " + (num1 * num2)); + } + } + Helpers.ShowScore(score); + Helpers.AddScore(score, "Multiplication"); + } + + internal void Division() + { + var score = 0; + + + for (int i = 0; i < 5; i++) + { + int[] nums = Helpers.GetNumbers(); + Console.WriteLine(nums[0] + " / " + nums[1] + " = ?"); + int result; + while (!int.TryParse(Console.ReadLine(), out result)) + { + Console.WriteLine("Invalid input. Please enter a number."); + Console.WriteLine(nums[0] + " / " + nums[1] + " = ?"); + } + if (result == nums[0] / nums[1]) + { + Console.WriteLine("Correct!"); + score++; + + } + else + { + Console.WriteLine("Incorrect! The correct answer is " + (nums[0] / nums[1])); + } + } + Helpers.ShowScore(score); + Helpers.AddScore(score, "Division"); + } + } +} diff --git a/Helpers.cs b/Helpers.cs new file mode 100644 index 00000000..f7f506e4 --- /dev/null +++ b/Helpers.cs @@ -0,0 +1,53 @@ + +namespace MathGame +{ + internal class Helpers + { + static List scores = new(); + internal static void ShowScore(int score) + { + Console.WriteLine("Your total score is: " + score + " out of 5"); + } + internal static void ViewScores() + { + Console.WriteLine("\n--- Previous Scores ---"); + + if (scores.Count == 0) + { + Console.WriteLine("No games played yet!"); + } + else + { + for (int i = 0; i < scores.Count; i++) + { + Console.WriteLine($"{i + 1}. {scores[i]}"); + } + } + + Console.WriteLine("-----------------------"); + } + internal static int[] GetNumbers() + { + Random random = new Random(); + int num1 = random.Next(1, 99); + int num2 = random.Next(1, 99); + var result = new int[2]; + + while (num1 % num2 != 0) + { + num1 = random.Next(1, 99); + num2 = random.Next(1, 99); + } + result[0] = num1; + result[1] = num2; + + return result; + } + + internal static void AddScore(int score, string game) + { + scores.Add($"{game} - {score}/5 - {DateTime.Now:g}"); + } + + } +} diff --git a/MathGame.csproj b/MathGame.csproj new file mode 100644 index 00000000..ed9781c2 --- /dev/null +++ b/MathGame.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/MathGame.slnx b/MathGame.slnx new file mode 100644 index 00000000..b337a196 --- /dev/null +++ b/MathGame.slnx @@ -0,0 +1,3 @@ + + + diff --git a/Menu.cs b/Menu.cs new file mode 100644 index 00000000..14e09b37 --- /dev/null +++ b/Menu.cs @@ -0,0 +1,43 @@ +namespace MathGame +{ + internal class Menu + { + internal void ShowMenu(string name) + { + Console.WriteLine("\nHello " + name + "! Welcome to the Math Quiz!"); + bool exit = true; + GameEngine gameEngine = new GameEngine(); + while (exit) + { + + Console.WriteLine("Choose the operation you want to practice: "); + Console.WriteLine("1. Addition"); + Console.WriteLine("2. Subtraction"); + Console.WriteLine("3. Multiplication"); + Console.WriteLine("4. Division"); + Console.WriteLine("5. View Scores"); + Console.WriteLine("6. Exit"); + if (int.TryParse(Console.ReadLine(), out int choice)) + { + switch (choice) + { + case 1: gameEngine.Addition(); break; + case 2: gameEngine.Subtraction(); break; + case 3: gameEngine.Multiplication(); break; + case 4: gameEngine.Division(); break; + case 5: Helpers.ViewScores(); break; + case 6: + Console.WriteLine("Goodbye!"); + exit = false; + break; + default: Console.WriteLine("Invalid choice!"); break; + } + } + else + { + Console.WriteLine("Invalid input!"); + } + } + } + } +} diff --git a/Program.cs b/Program.cs new file mode 100644 index 00000000..546e79f8 --- /dev/null +++ b/Program.cs @@ -0,0 +1,10 @@ +using MathGame; + +Console.WriteLine("Enter your Name: "); +string name = Console.ReadLine(); +Menu menu = new Menu(); +menu.ShowMenu(name); + + + +