using System.Collections.Generic;
using System.Threading.Tasks;
static void Main(string[] args)
Random randomGenerator = new Random();
int randomAS = randomGenerator.Next(1, 101);
int randomMD = randomGenerator.Next(1, 13);
int correct = 0, incorrect = 0;
int add1, add2, sub1, sub2, mul1, mul2, div1, div2;
Console.WriteLine(" Enter 'practice', 'game', or 'exit'");
gameMode = Console.ReadLine();
if (gameMode == "practice")
if (gameMode == "practice")
Console.WriteLine("Do you want to practice addition, subtraction, multiplication, or division");
practiceType = Console.ReadLine();
if (practiceType == "addition")
if (practiceType == "subtraction")
if (practiceType == "multiplication")
if (practiceType == "division")
Console.WriteLine("How many questions would you like?");
qNum = Convert.ToInt32(Console.ReadLine());
if (practiceType == "addition")
for (int i = 0; i < qNum; i++)
add1 = randomGenerator.Next(1, 101);
add2 = randomGenerator.Next(1, 101);
Console.Write($"{add1} + {add2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (add1 + add2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
Console.WriteLine($"You got {correct}/{qNum}");
if (practiceType == "subtraction")
for (int i = 0; i < qNum; i++)
sub1 = randomGenerator.Next(1, 101);
sub2 = randomGenerator.Next(1, 101);
Console.Write($"{sub1} - {sub2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (sub1 - sub2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
Console.WriteLine($"You got {correct}/{qNum}");
if (practiceType == "multiplication")
for (int i = 0; i < qNum; i++)
mul1 = randomGenerator.Next(1, 13);
mul2 = randomGenerator.Next(1, 13);
Console.Write($"{mul1} * {mul2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (mul1 * mul2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
Console.WriteLine($"You got {correct}/ {qNum}");
if (practiceType == "division")
for (int i = 0; i < qNum; i++)
div1 = randomGenerator.Next(1, 13);
div2 = randomGenerator.Next(1, 13);
Console.Write($"{div1} / {div2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (div1 / div2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
Console.WriteLine($"You got {correct}/{qNum}");
Console.WriteLine("Would you like to go move on to game mode or exit? ('game' or 'exit')");
gameMode = Console.ReadLine();
Console.WriteLine("Choose your level of difficulty ('easy', 'medium', 'hard'");
difficultyLvl = Console.ReadLine();
if (difficultyLvl == "easy" || difficultyLvl == "medium" || difficultyLvl == "hard")
if (difficultyLvl == "easy")
for (int i = 0; i < qNum; i++)
typeNum = randomGenerator.Next(1, 3);
add1 = randomGenerator.Next(1, 101);
add2 = randomGenerator.Next(1, 101);
Console.Write($"{add1} + {add2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (add1 + add2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
sub1 = randomGenerator.Next(1, 101);
sub2 = randomGenerator.Next(1, 101);
Console.Write($"{sub1} - {sub2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (sub1 - sub2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
Console.WriteLine($"You got {correct}/{qNum}");
if (difficultyLvl == "medium")
for (int i = 0; i < qNum; i++)
typeNum = randomGenerator.Next(1, 3);
mul1 = randomGenerator.Next(1, 13);
mul2 = randomGenerator.Next(1, 13);
Console.Write($"{mul1} * {mul2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (mul1 * mul2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
div1 = randomGenerator.Next(1, 13);
div2 = randomGenerator.Next(1, 13);
Console.Write($"{div1} / {div2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (div1 / div2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
Console.WriteLine($"You got {correct}/{qNum}");
if (difficultyLvl == "hard")
for (int i = 0; i < qNum; i++)
typeNum = randomGenerator.Next(1, 5);
add1 = randomGenerator.Next(1, 101);
add2 = randomGenerator.Next(1, 101);
Console.Write($"{add1} + {add2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (add1 + add2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
sub1 = randomGenerator.Next(1, 101);
sub2 = randomGenerator.Next(1, 101);
Console.Write($"{sub1} - {sub2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (sub1 - sub2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
mul1 = randomGenerator.Next(1, 13);
mul2 = randomGenerator.Next(1, 13);
Console.Write($"{mul1} * {mul2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (mul1 * mul2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
div1 = randomGenerator.Next(1, 13);
div2 = randomGenerator.Next(1, 13);
Console.Write($"{div1} / {div2} = ");
if (Convert.ToInt32(Console.ReadLine()) == (div1 / div2))
Console.WriteLine("Correct");
Console.WriteLine("Incorrect");
Console.WriteLine($"Current score: {correct}/{correct + incorrect}");
Console.WriteLine($"You got {correct}/{qNum}");