diff --git a/ConsoleApp1.sln b/ConsoleApp1.sln
new file mode 100644
index 00000000..6d514e84
--- /dev/null
+++ b/ConsoleApp1.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36811.4 d17.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1\ConsoleApp1.csproj", "{2B7C869A-7B29-4973-8E40-D4280C301D19}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {2B7C869A-7B29-4973-8E40-D4280C301D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2B7C869A-7B29-4973-8E40-D4280C301D19}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B7C869A-7B29-4973-8E40-D4280C301D19}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2B7C869A-7B29-4973-8E40-D4280C301D19}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {FA0C5B78-59FC-4F91-A35F-4547F4FE40F8}
+ EndGlobalSection
+EndGlobal
diff --git a/MathGame.leolin2810/ConsoleApp1.csproj b/MathGame.leolin2810/ConsoleApp1.csproj
new file mode 100644
index 00000000..206b89a9
--- /dev/null
+++ b/MathGame.leolin2810/ConsoleApp1.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/MathGame.leolin2810/ConsoleApp1.sln b/MathGame.leolin2810/ConsoleApp1.sln
new file mode 100644
index 00000000..1586990f
--- /dev/null
+++ b/MathGame.leolin2810/ConsoleApp1.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.2.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1.csproj", "{7B5B0BC2-7E08-E58C-6436-F53A2B87BA1D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7B5B0BC2-7E08-E58C-6436-F53A2B87BA1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B5B0BC2-7E08-E58C-6436-F53A2B87BA1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7B5B0BC2-7E08-E58C-6436-F53A2B87BA1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7B5B0BC2-7E08-E58C-6436-F53A2B87BA1D}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {72B9E995-B8AB-4117-A663-A4DA72F723CF}
+ EndGlobalSection
+EndGlobal
diff --git a/MathGame.leolin2810/Game.cs b/MathGame.leolin2810/Game.cs
new file mode 100644
index 00000000..f50b690d
--- /dev/null
+++ b/MathGame.leolin2810/Game.cs
@@ -0,0 +1,107 @@
+namespace ConsoleApp1
+{
+ class Game
+ {
+ // Defaults to 5 problems per game, but can be changed by user input
+ private int problemCount = 5;
+ public List problems = new();
+ private int operation = 5;
+ private int difficulty = 1;
+ private int score;
+ private int time;
+
+ public void AddScore(int score)
+ {
+ score += score;
+ }
+
+ public Game(int problemCountEntry = 5, int operationEntry = 5, int difficultyEntry = 1)
+ {
+ problemCount = problemCountEntry;
+ operation = operationEntry;
+ difficulty = difficultyEntry;
+ }
+ // Current Setting Display
+ public void DisplaySettings()
+ {
+ Console.WriteLine("Current Settings:");
+ DisplayProblemCount();
+ DisplayOperationType();
+ DisplayDifficulty();
+ DisplayTime();
+ }
+
+ private void DisplayProblemCount()
+ {
+ Console.WriteLine($"Current number of problems: {problemCount}");
+ }
+ private void DisplayOperationType()
+ {
+ switch (operation)
+ {
+ case 1:
+ {
+ Console.WriteLine("Current operation: Addition");
+ break;
+ }
+ case 2:
+ {
+ Console.WriteLine("Current operation: Subtraction");
+ break;
+ }
+ case 3:
+ {
+ Console.WriteLine("Current operation: Multiplication");
+ break;
+ }
+ case 4:
+ {
+ Console.WriteLine("Current operation: Division");
+ break;
+ }
+ case 5:
+ {
+ Console.WriteLine("Current operation: Random");
+ break;
+ }
+ }
+ }
+ private void DisplayDifficulty()
+ {
+ Console.WriteLine($"Current difficulty: {difficulty}");
+ }
+
+ public void DisplayScore()
+ {
+ Console.WriteLine($"Your score was {score} out of {problemCount}.");
+ }
+
+ public void ClearProblemList()
+ {
+ problems.Clear();
+ }
+
+ public void GenerateProblems()
+ {
+
+ for (int i = 0; i < problemCount; i++)
+ {
+ Problem problem = new();
+ problem.GenerateEquation(operation, difficulty);
+ problems.Add(problem);
+ }
+ }
+
+ public void SetTime(DateTime start, DateTime end)
+ {
+ TimeSpan duration = end - start;
+ time = duration.Seconds;
+ }
+
+ public void DisplayTime()
+ {
+ Console.WriteLine($"Your time was {time} seconds.");
+ }
+ }
+}
+
diff --git a/MathGame.leolin2810/Problem.cs b/MathGame.leolin2810/Problem.cs
new file mode 100644
index 00000000..ddc8dd3b
--- /dev/null
+++ b/MathGame.leolin2810/Problem.cs
@@ -0,0 +1,159 @@
+namespace ConsoleApp1
+{
+ class Problem
+ {
+ private string equation = "";
+ private int solution;
+ private int moduloCheck;
+ private int maxVal;
+
+ private void SetMaxVal(int difficulty)
+ {
+ switch (difficulty)
+ {
+ case 1:
+ {
+ maxVal = 10;
+ break;
+ }
+ case 2:
+ {
+ maxVal = 50;
+ break;
+ }
+ case 3:
+ {
+ maxVal = 100;
+ break;
+ }
+ }
+ }
+ public void GenerateEquation(int operation = 5, int difficulty = 1)
+ {
+ Random random = new();
+ SetMaxVal(difficulty);
+
+ if (operation == 5)
+ {
+ operation = random.Next(0, 4)+1;
+ }
+
+
+ switch (operation)
+ {
+ // Addition
+ case 1:
+ {
+
+ Random randint1 = new();
+ Random randint2 = new();
+
+ int addend1 = randint1.Next(0, maxVal);
+ int addend2 = randint2.Next(0, maxVal);
+
+ equation = $"{addend1} + {addend2}";
+ solution = addend1 + addend2;
+ break;
+ }
+ // Subtraction
+ case 2:
+ {
+ do
+ {
+ Random randint1 = new();
+ Random randint2 = new();
+
+ int minuend = randint1.Next(0, maxVal);
+ int subtractend = randint2.Next(0, maxVal);
+
+ equation = $"{minuend} - {subtractend}";
+ solution = minuend - subtractend;
+ }
+ while (solution < 0);
+
+ break;
+ }
+ //Multiplication
+ case 3:
+ {
+ Random randint1 = new();
+ Random randint2 = new();
+
+ int factor1 = randint1.Next(0, maxVal);
+ int factor2 = randint2.Next(0, maxVal);
+
+ equation = $"{factor1} * {factor2}";
+ solution = factor1 * factor2;
+ break;
+ }
+ // Division
+ case 4:
+ {
+ do
+ {
+ Random randint1 = new();
+ Random randint2 = new();
+
+ int dividend = randint1.Next(0, maxVal);
+ int divisor = randint2.Next(0, maxVal);
+
+ equation = $"{dividend} \u00f7 {divisor}";
+
+ try
+ {
+ solution = dividend / divisor;
+ }
+ catch (DivideByZeroException ex)
+ {
+ continue;
+ }
+
+ moduloCheck = dividend % divisor;
+ //try
+ //{
+
+ //}
+ //catch (DivideByZeroException ex)
+ //{
+ // continue;
+ //}
+ }
+ while (moduloCheck != 0 || solution <= 0);
+
+ break;
+
+ }
+ }
+ }
+
+ public void DisplayEquation()
+ {
+ Console.WriteLine("What is the solution to the following equation?");
+ Console.WriteLine(equation);
+ //Console.WriteLine(Solution);
+ }
+
+ public int CheckSolution(string input)
+ {
+ int Input;
+ if (int.TryParse(input, out Input))
+ {
+ if (Input == solution)
+ {
+ Console.WriteLine("Correct!");
+ return 1;
+ }
+ else
+ {
+ Console.WriteLine($"Incorrect. The correct answer is {solution}.");
+ return 0;
+ }
+ }
+ else
+ {
+ Console.WriteLine($"Invalid input. The correct answer is {solution}.");
+ return 0;
+ }
+ }
+ }
+}
diff --git a/MathGame.leolin2810/Program.cs b/MathGame.leolin2810/Program.cs
new file mode 100644
index 00000000..dcc654f4
--- /dev/null
+++ b/MathGame.leolin2810/Program.cs
@@ -0,0 +1,305 @@
+using static System.Formats.Asn1.AsnWriter;
+
+namespace ConsoleApp1
+{
+ class Program
+ {
+ private int problemCount = 5;
+ private int operation = 5;
+ private int difficulty = 1;
+ List games = new();
+
+ static void Main()
+ {
+ Program Application = new();
+ while (true)
+ {
+ Console.Clear();
+ Program.PromptUser();
+ Console.WriteLine("-----------------------");
+ Application.DisplayCurrentSettings();
+ Console.WriteLine("-----------------------");
+ Application.EvaluatePromptUserInput();
+ }
+
+ }
+ /*-------------------------Menu Display Methods-------------------------*/
+ public static void PromptUser()
+ {
+ Console.WriteLine("Welcome to the Math Game!");
+
+ Console.WriteLine("1. Start Game");
+ Console.WriteLine("2. Change Number of Problems");
+ Console.WriteLine("3. Specify the Operation");
+ Console.WriteLine("4. Change the Difficulty");
+ Console.WriteLine("5. View Past Scores");
+ Console.WriteLine("6. Exit");
+ }
+
+ public void DisplayCurrentSettings()
+ {
+ Console.WriteLine("Current Settings:");
+ DisplayProblemCount();
+ DisplayOperationType();
+ DisplayDifficulty();
+ }
+
+ private void DisplayProblemCount()
+ {
+ Console.WriteLine($"Current number of problems: {problemCount}");
+ }
+
+ private void DisplayOperationType()
+ {
+ switch (operation)
+ {
+ case 1:
+ {
+ Console.WriteLine("Current operation: Addition");
+ break;
+ }
+ case 2:
+ {
+ Console.WriteLine("Current operation: Subtraction");
+ break;
+ }
+ case 3:
+ {
+ Console.WriteLine("Current operation: Multiplication");
+ break;
+ }
+ case 4:
+ {
+ Console.WriteLine("Current operation: Division");
+ break;
+ }
+ case 5:
+ {
+ Console.WriteLine("Current operation: Random");
+ break;
+ }
+ }
+ }
+ private void DisplayDifficulty()
+ {
+ Console.WriteLine($"Current difficulty: {difficulty}");
+ }
+
+ /*-------------------------Problem Count Methods-------------------------*/
+ private static void PromptProblemCount()
+ {
+ Console.Clear();
+ Console.WriteLine("How many problems would you like to practice?");
+ Console.WriteLine("Enter a number greater than 0: ");
+ }
+
+ public void EvaluatePromptProblemCountInput()
+ {
+ int Input;
+ while (true)
+ {
+ string temp = Console.ReadLine();
+
+ // Parsing a null returns 0, which is out of range of the conditions between 1 to 5
+ if (int.TryParse(temp, out Input))
+ {
+ if (Input >= 5)
+ {
+ problemCount = Input;
+ break;
+ }
+ Console.WriteLine("Please enter a number greater than 5.");
+ continue;
+ }
+ else
+ {
+ Console.WriteLine("Invalid input. Please enter a number.");
+ }
+
+ }
+ }
+
+ /*-------------------------Operation Select Methods-------------------------*/
+ private static void PromptOperation()
+ {
+ Console.Clear();
+ Console.WriteLine("Which operation would you like to practice?");
+ Console.WriteLine("1. Addition");
+ Console.WriteLine("2. Subtraction");
+ Console.WriteLine("3. Multiplication");
+ Console.WriteLine("4. Division");
+ Console.WriteLine("5. Random");
+ Console.WriteLine("Enter the number associated with the operation you want to practice: ");
+ }
+
+ public void EvaluatePromptOperationInput()
+ {
+ int Input;
+ while (true)
+ {
+ string temp = Console.ReadLine();
+
+ // Parsing a null returns 0, which is out of range of the conditions between 1 to 5
+ if (int.TryParse(temp, out Input))
+ {
+ if (Input <= 5 && Input >= 1)
+ {
+
+ operation = Input;
+ Console.WriteLine(operation);
+ break;
+ }
+ Console.WriteLine("Please enter a number between 1 and 5.");
+ continue;
+ }
+ else
+ {
+ Console.WriteLine("Invalid input. Please enter a number.");
+ }
+
+ }
+ }
+
+ /*-------------------------Difficulty Select Methods-------------------------*/
+ private static void PromptDifficulty()
+ {
+ Console.Clear();
+ Console.WriteLine("Which difficulty would you like to practice?");
+ Console.WriteLine("1. Easy (0-10)");
+ Console.WriteLine("2. Medium (0-50)");
+ Console.WriteLine("3. Hard (0-100)");
+ Console.WriteLine("Enter the number associated with the difficulty you want to practice: ");
+ }
+
+ // Technically, the skeleton for this code is a copy of EvaluatePromptOperationInput(), but kept as a separate method for clarity
+ public void EvaluatePromptDifficultyInput()
+ {
+ int Input;
+ while (true)
+ {
+ string temp = Console.ReadLine();
+
+ // Parsing a null returns 0, which is out of range of the conditions between 1 to 5
+ if (int.TryParse(temp, out Input))
+ {
+ if (Input <= 3 && Input >= 1)
+ {
+ difficulty = Input;
+ break;
+ }
+ Console.WriteLine("Please enter a number between 1 and 3.");
+ continue;
+ }
+ else
+ {
+ Console.WriteLine("Invalid input. Please enter a number.");
+ }
+
+ }
+ }
+
+ /*-------------------------Main User Input Methods-------------------------*/
+ public void EvaluatePromptUserInput()
+ {
+ // Checks for valid input from user
+ int Input;
+ while (true)
+ {
+ Console.WriteLine("Enter the number associated with what you want to do: ");
+ string temp = Console.ReadLine();
+
+ // Parsing a null returns 0, which is out of range of the conditions between 1 to 5
+ if (int.TryParse(temp, out Input))
+ {
+ if (Input <= 6 && Input >= 1)
+ {
+ break;
+ }
+ Console.WriteLine("Please enter a number between 1 and 5.");
+ continue;
+ }
+ else
+ {
+ Console.WriteLine("Invalid input. Please enter a number.");
+
+ }
+
+ }
+
+ // Performs the action associated with the user input
+ switch (Input)
+ {
+ case 1:
+ {
+ Console.Clear();
+ Game NewGame = new(problemCount, operation, difficulty);
+ NewGame.ClearProblemList();
+ NewGame.GenerateProblems();
+ DateTime StartTime = DateTime.Now;
+ foreach (Problem problem in NewGame.problems)
+ {
+ problem.DisplayEquation();
+ NewGame.AddScore(problem.CheckSolution(Console.ReadLine()));
+ }
+ DateTime EndTime = DateTime.Now;
+ NewGame.SetTime(StartTime, EndTime);
+ games.Add(NewGame);
+ break;
+ }
+ case 2:
+ {
+ PromptProblemCount();
+ EvaluatePromptProblemCountInput();
+ break;
+ }
+ case 3:
+ {
+ PromptOperation();
+ EvaluatePromptOperationInput();
+ break;
+ }
+ case 4:
+ {
+ PromptDifficulty();
+ EvaluatePromptDifficultyInput();
+ break;
+ }
+ case 5:
+ {
+ Console.Clear();
+ Console.WriteLine("Displaying past game scores...");
+ foreach (Game game in games)
+ {
+ game.DisplaySettings();
+ Console.WriteLine("");
+ game.DisplayScore();
+ Console.WriteLine("-----------------------");
+ }
+ Console.WriteLine("Press any key to return to the main menu.");
+ Console.ReadKey();
+ break;
+ }
+ case 6:
+ {
+ Console.WriteLine("Exiting...");
+ System.Environment.Exit(0);
+ break;
+ }
+
+ // Given the parsing in the previous step, this shouldn't be reached realistically
+ default:
+ {
+ Console.WriteLine("Invalid input. Please enter a number between 1 and 5.");
+ break;
+ }
+ }
+ }
+
+
+ }
+}
+
+
+
+
+
diff --git a/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.dgspec.json b/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.dgspec.json
new file mode 100644
index 00000000..b3a245a7
--- /dev/null
+++ b/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.dgspec.json
@@ -0,0 +1,73 @@
+{
+ "format": 1,
+ "restore": {
+ "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\ConsoleApp1.csproj": {}
+ },
+ "projects": {
+ "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\ConsoleApp1.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\ConsoleApp1.csproj",
+ "projectName": "ConsoleApp1",
+ "projectPath": "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\ConsoleApp1.csproj",
+ "packagesPath": "C:\\Users\\leoli\\.nuget\\packages\\",
+ "outputPath": "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\leoli\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "9.0.300"
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.310/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.g.props b/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.g.props
new file mode 100644
index 00000000..5b2e500d
--- /dev/null
+++ b/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.g.props
@@ -0,0 +1,16 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ $(UserProfile)\.nuget\packages\
+ C:\Users\leoli\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
+ PackageReference
+ 6.14.2
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.g.targets b/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.g.targets
new file mode 100644
index 00000000..35a7576c
--- /dev/null
+++ b/MathGame.leolin2810/obj/ConsoleApp1.csproj.nuget.g.targets
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.AssemblyInfo.cs b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.AssemblyInfo.cs
new file mode 100644
index 00000000..03c09244
--- /dev/null
+++ b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("ConsoleApp1")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+cbc75ad34a85456e020baf9407750d81c701a423")]
+[assembly: System.Reflection.AssemblyProductAttribute("ConsoleApp1")]
+[assembly: System.Reflection.AssemblyTitleAttribute("ConsoleApp1")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// Generated by the MSBuild WriteCodeFragment class.
+
diff --git a/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.AssemblyInfoInputs.cache b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..f36209c6
--- /dev/null
+++ b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+116007794ef50f54b3691bbf9e8a3f98acaccea1b6378145db6595a4d605d3f1
diff --git a/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.GeneratedMSBuildEditorConfig.editorconfig b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..d8a405d1
--- /dev/null
+++ b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,15 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = ConsoleApp1
+build_property.ProjectDir = C:\Users\leoli\source\repos\CS_Academy_MathGame\ConsoleApp1\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
+build_property.EffectiveAnalysisLevelStyle = 8.0
+build_property.EnableCodeStyleSeverity =
diff --git a/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.GlobalUsings.g.cs b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.GlobalUsings.g.cs
new file mode 100644
index 00000000..ac22929d
--- /dev/null
+++ b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.GlobalUsings.g.cs
@@ -0,0 +1,8 @@
+//
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.assets.cache b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.assets.cache
new file mode 100644
index 00000000..f4df9b02
Binary files /dev/null and b/MathGame.leolin2810/obj/Debug/net8.0/ConsoleApp1.assets.cache differ
diff --git a/MathGame.leolin2810/obj/project.assets.json b/MathGame.leolin2810/obj/project.assets.json
new file mode 100644
index 00000000..2a71d185
--- /dev/null
+++ b/MathGame.leolin2810/obj/project.assets.json
@@ -0,0 +1,79 @@
+{
+ "version": 3,
+ "targets": {
+ "net8.0": {}
+ },
+ "libraries": {},
+ "projectFileDependencyGroups": {
+ "net8.0": []
+ },
+ "packageFolders": {
+ "C:\\Users\\leoli\\.nuget\\packages\\": {},
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\ConsoleApp1.csproj",
+ "projectName": "ConsoleApp1",
+ "projectPath": "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\ConsoleApp1.csproj",
+ "packagesPath": "C:\\Users\\leoli\\.nuget\\packages\\",
+ "outputPath": "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\leoli\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "9.0.300"
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.310/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/MathGame.leolin2810/obj/project.nuget.cache b/MathGame.leolin2810/obj/project.nuget.cache
new file mode 100644
index 00000000..fbfe276a
--- /dev/null
+++ b/MathGame.leolin2810/obj/project.nuget.cache
@@ -0,0 +1,8 @@
+{
+ "version": 2,
+ "dgSpecHash": "rGAHdC9zfas=",
+ "success": true,
+ "projectFilePath": "C:\\Users\\leoli\\source\\repos\\CS_Academy_MathGame\\ConsoleApp1\\ConsoleApp1.csproj",
+ "expectedPackageFiles": [],
+ "logs": []
+}
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..c21ba259
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# ConsoleApp1
\ No newline at end of file