public static void Main()
System.Console.WriteLine("Válaszd ki, hogy milyen feladatokat szeretnél:\n1: összeadás\n2: kivonás\n3: szorzás");
var feladatvalasz = SzamValto("1 és 3 közötti számot írj be kérlek.", 0, 5);
var matek = new MatekOsztaly(feladatvalasz);
System.Console.WriteLine("Indul a gyakorlás! :) Ha be szeretnéd fejezni, gépeld be az exit szót. :)");
int a = rand.Next(matek.FelsoHatar);
int b = rand.Next(matek.FelsoHatar);
long helyesMegoldas = matek.Feladat(a,b);
System.Console.Write($"{a} {matek.FeladatOperator} {b} = ");
string valasz = Console.ReadLine();
long megoldas = SzamValto("számot írj be kérlek.", long.MinValue, long.MaxValue, valasz);
if(megoldas == helyesMegoldas)
System.Console.WriteLine("Ügyes voltál! :D");
System.Console.WriteLine($"A helyes megoldás {helyesMegoldas} volt.\nA következő biztos jobban fog menni! :)");
var szazalek = (double)eltalalt / osszes;
System.Console.WriteLine($"eredményed: {eltalalt}/{osszes} {szazalek*100}%");
public static long SzamValto(string szoveg, long alsoHatar, long felsoHatar, string optional = null)
string szam = optional ?? Console.ReadLine();
var siker = int.TryParse(szam, out int ertek);
if(siker && ertek > alsoHatar && ertek < felsoHatar)
System.Console.WriteLine(szoveg);
return SzamValto(szoveg, alsoHatar, felsoHatar);
public string FeladatOperator {get;}
public int FelsoHatar {get;}
public Func<int, int, long> Feladat {get;}
public MatekOsztaly(long feladatTipus)
FeladatTipus = feladatTipus;
FeladatOperator = feladatTipus switch
FelsoHatar = feladatTipus switch
Feladat = feladatTipus switch
1 => (int a, int b) => a + b,
2 => (int a, int b) => a - b,
3 => (int a, int b) => a * b,
_ => (int a, int b) => a + b