diff --git a/MathGame/MathGame.csproj b/MathGame/MathGame.csproj
new file mode 100644
index 00000000..2150e379
--- /dev/null
+++ b/MathGame/MathGame.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/MathGame/MathGame.sln b/MathGame/MathGame.sln
new file mode 100644
index 00000000..61b8034f
--- /dev/null
+++ b/MathGame/MathGame.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.37012.4 d17.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MathGame", "MathGame.csproj", "{D0C491FA-373E-4913-9C07-448CFDB0CC07}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D0C491FA-373E-4913-9C07-448CFDB0CC07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0C491FA-373E-4913-9C07-448CFDB0CC07}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0C491FA-373E-4913-9C07-448CFDB0CC07}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D0C491FA-373E-4913-9C07-448CFDB0CC07}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {713AFC4E-0651-4AEE-A415-7EE7462E5BA1}
+ EndGlobalSection
+EndGlobal
diff --git a/MathGame/Program.cs b/MathGame/Program.cs
new file mode 100644
index 00000000..edc486df
--- /dev/null
+++ b/MathGame/Program.cs
@@ -0,0 +1,301 @@
+
+using static System.Formats.Asn1.AsnWriter;
+
+namespace MathGame
+{
+ internal class Program
+ {
+ static void Main(string[] args)
+ {
+ //creating a list to keep all the questionsWithAnswer
+ List questionsWithAnswer = new();
+ List> previusGames = new();
+ //random number generator
+ //adding a testcomment
+ Random rand = new();
+
+
+ Console.WriteLine("Wellcome to Math Game");
+ string? input = "";
+ int gameNumber = 1;
+ while (input.ToLower().Trim() != "no")
+ {
+ RunGame(rand, questionsWithAnswer, gameNumber);
+ gameNumber++;
+ previusGames.Add(questionsWithAnswer);
+ questionsWithAnswer = new();
+
+
+ Console.WriteLine("Do you want to play again? or you are scred");
+ Console.WriteLine("Type 'yes' to play or 'no' to quit");
+ Console.WriteLine("Or type 'previus' if you want to see previous games result");
+
+ input = Console.ReadLine();
+
+ if (input != null)
+ {
+ if (input.ToLower().Trim() == "previus")
+ {
+ int game = 1;
+ foreach (var item in previusGames)
+ {
+ Console.WriteLine("Game " + game);
+ foreach (var item1 in item)
+ Console.WriteLine(item1);
+ Console.WriteLine();
+ game++;
+ }
+ }
+ }
+ else
+ Console.WriteLine("The input is not valid");
+
+ }
+ Console.WriteLine("Thank you for playing");
+ }
+
+ static void ShowResults(List questionsWithAnswer)
+ {
+ Console.WriteLine("This game questions answered: ");
+ foreach (var item in questionsWithAnswer)
+ {
+ Console.WriteLine(item);
+ }
+ }
+ static void RunGame(Random rand, List questionsWithAnswer, int gameNumber)
+ {
+ char operation = '\0';
+ string? input = "";
+ string question = "";
+ int answer = 0;
+ int finalScore = 0;
+ int correctAnswer = 0;
+ //adding a counter
+ int gameCount = 0;
+ DateTime timeStart = new();
+ DateTime timeFinish = new();
+ timeStart = DateTime.UtcNow;
+
+ Console.WriteLine("******************");
+ Console.WriteLine();
+ Console.WriteLine($"GAME {gameNumber}");
+ while (input != "0" && gameCount < 5)
+ {
+ ShowMenu();
+ input = Console.ReadLine();
+
+ var flag = int.TryParse(input, out int result);
+
+ if (flag)
+ {
+
+ switch (result)
+ {
+ case 1:
+ {
+ //everytime the user chooses an operation its count as a game
+ gameCount++;
+ operation = '+';
+ int firstNumber = rand.Next(1, 100);
+ int secondNumber = rand.Next(1, 100);
+
+
+ while (true)
+ {
+ question = firstNumber + " " + operation + " " + secondNumber;
+ Console.WriteLine(question);
+
+ var validation = int.TryParse(Console.ReadLine(), out answer);
+
+ if (validation)
+ {
+ correctAnswer = firstNumber + secondNumber;
+ if (answer == correctAnswer)
+ {
+ finalScore++;
+
+ CorrectAnswer(questionsWithAnswer, question);
+ }
+ else
+ {
+ WrongAnswer(questionsWithAnswer, question);
+ Console.WriteLine("Correct answer is: " + correctAnswer);
+ }
+ break;
+ }
+ //if input is not a number keep asking the question
+ else
+ Console.WriteLine("The answer was not in the right format");
+ }
+ }
+ break;
+
+ case 2:
+ {
+ gameCount++;
+ operation = '-';
+ int firstNumber = rand.Next(1, 100);
+ int secondNumber = rand.Next(1, 100);
+ while (true)
+ {
+ question = firstNumber + " " + operation + " " + secondNumber;
+ Console.WriteLine(question);
+
+ var validation = int.TryParse(Console.ReadLine(), out answer);
+
+ if (validation)
+ {
+ correctAnswer = firstNumber - secondNumber;
+ if (answer == correctAnswer)
+ {
+ finalScore++;
+
+ CorrectAnswer(questionsWithAnswer, question);
+ }
+ else
+ {
+ WrongAnswer(questionsWithAnswer, question);
+ Console.WriteLine("Correct answer is: " + correctAnswer);
+ }
+ break;
+ }
+ //if input is not a number keep asking the question
+ else
+ Console.WriteLine("The answer was not in the right format");
+ }
+ }
+ break;
+
+ case 3:
+ {
+ gameCount++;
+ operation = '*';
+ int firstNumber = rand.Next(1, 100);
+ int secondNumber = rand.Next(1, 100);
+ while (true)
+ {
+ question = firstNumber + " " + operation + " " + secondNumber;
+ Console.WriteLine(question);
+
+ var validation = int.TryParse(Console.ReadLine(), out answer);
+
+ if (validation)
+ {
+ correctAnswer = firstNumber * secondNumber;
+ if (answer == correctAnswer)
+ {
+ finalScore++;
+
+ CorrectAnswer(questionsWithAnswer, question);
+ }
+ else
+ {
+ WrongAnswer(questionsWithAnswer, question);
+ Console.WriteLine("Correct answer is: " + correctAnswer);
+ }
+ break;
+ }
+ //if input is not a number keep asking the question
+ else
+ Console.WriteLine("The answer was not in the right format");
+ }
+ }
+ break;
+
+ case 4:
+ {
+ gameCount++;
+ operation = '/';
+ int firstNumber = rand.Next(1, 100);
+ int secondNumber = rand.Next(1, 100);
+
+ while (true)
+ {
+ if (firstNumber % secondNumber == 0)
+ break;
+ firstNumber = rand.Next(1, 100);
+ secondNumber = rand.Next(1, 100);
+ }
+
+ while (true)
+ {
+ question = firstNumber + " " + operation + " " + secondNumber;
+ Console.WriteLine(question);
+
+ var validation = int.TryParse(Console.ReadLine(), out answer);
+
+ if (validation)
+ {
+ correctAnswer = firstNumber / secondNumber;
+ if (answer == correctAnswer)
+ {
+ finalScore++;
+
+ CorrectAnswer(questionsWithAnswer, question);
+ }
+ else
+ {
+ WrongAnswer(questionsWithAnswer, question);
+ Console.WriteLine("Correct answer is: " + correctAnswer);
+ }
+ break;
+ }
+ //if input is not a number keep asking the question
+ else
+ Console.WriteLine("The answer was not in the right format");
+ }
+ }
+ break;
+ case 0:
+ break;
+ default:
+ Console.WriteLine("Please choose from the menu");
+ break;
+ }
+ }
+ else
+ Console.WriteLine("Please enter a valid input");
+ }
+ timeFinish = DateTime.Now;
+
+ if (gameCount == 0)
+ Console.WriteLine("Sorry to see you quit");
+
+ else
+ {
+ Console.WriteLine($"Game {gameNumber}:");
+ ShowResults(questionsWithAnswer);
+ Console.WriteLine();
+ Console.WriteLine($"This game score is: {finalScore}");
+ Console.WriteLine($"You took {(timeFinish - timeStart).Seconds} seconds to finish");
+ }
+
+ }
+
+ private static void WrongAnswer(List questionsWithAnswer, string question)
+ {
+ Console.WriteLine("Wrong! you get 0 point");
+ questionsWithAnswer.Add($"Question: \"{question}\" - Answered Wrong => 0 point");
+ }
+
+ static void CorrectAnswer(List questionsWithAnswer, string question)
+ {
+ Console.WriteLine("Correct! You get 1 point");
+ questionsWithAnswer.Add($"Question: \"{question}\" - Answered Correct => 1 point");
+
+ }
+
+ static void ShowMenu()
+ {
+ Console.WriteLine("Choose the operation");
+ Console.WriteLine("'1' for '+'");
+ Console.WriteLine("'2' for '-'");
+ Console.WriteLine("'3' for '*'");
+ Console.WriteLine("'4' for '/'");
+
+ Console.WriteLine("Or put '0' to quit the game");
+ }
+
+
+ }
+}