private static Kat VoegKatToe() { Console.WriteLine("Wat is het gewicht?"); Kat kat = new Kat(); kat.Gewicht = Convert.ToInt32(Console.ReadLine()); return(kat); }
static void Main(string[] args) { List <string> Oefeningen = new List <string>(); Console.OutputEncoding = Encoding.UTF8; // voor de euro sign Oefeningen = new List <string>(); Oefeningen.Add("Exit"); Oefeningen.Add("Dierentuin"); Oefeningen.Add("Pokemons vergelijken"); Oefeningen.Add("Magic"); Oefeningen.Add("Een eigen huis"); bool bExit = false; while (!bExit) { Console.Clear(); Console.WriteLine("Overerving oefeningen:\n"); switch (SelectMenu(false, Oefeningen.ToArray()) - 1) { case 0: bExit = true; break; case 1: Dierentuin(); break; case 2: PokemonsVergelijken(); break; case 3: Magic(); break; case 4: EenEigenHuis(); break; default: break; } } void Dierentuin() { bool exit = false; string[] dierenNamen = { "Kat", "Hond", "Vis", "Koe", "q" }; List <Dier> dieren = new List <Dier>(); while (!exit) { bool toevoegen = true; while (toevoegen) { Console.Clear(); foreach (Dier dier in dieren) { dier.OverZicht(); } Dier nieuwDier = null; Console.WriteLine("\n\nDieren toevoegen:"); switch (SelectMenu(false, dierenNamen)) { case 1: nieuwDier = new Kat(); break; case 2: nieuwDier = new Hond(); break; case 3: nieuwDier = new Vis(); break; case 4: nieuwDier = new Koe(); break; case 5: toevoegen = false; break; default: exit = true; break; } if (nieuwDier != null) { nieuwDier.Naam = InputStr("Naam: "); nieuwDier.Gewicht = InputInt("Gewicht: "); dieren.Add(nieuwDier); } } bool opnieuw = true; while (opnieuw) { if (dieren != null) { foreach (Dier dier in dieren) { dier.OverZicht(); } } Console.WriteLine("\n\nMenu:"); switch (SelectMenu(false, "Dier verwijderen", "Gemiddelde gewicht", "Dier praten", "Opnieuw beginnen", "Exit")) { case 1: { bool delete = true; while (delete) { List <string> dierNamen = new List <string>(); foreach (Dier dier in dieren) { if ((dier.Naam != null) && (dier.Naam != "")) { dierNamen.Add(dier.Naam); } } dierNamen.Add("Exit"); string dierToDelete = dierNamen[SelectMenu(true, dierNamen.ToArray()) - 1]; if (dierToDelete == "Exit") { delete = false; } else { int indexToRemove = -1; foreach (Dier dier in dieren) { if (dier.Naam == dierToDelete) { indexToRemove = dieren.IndexOf(dier); } } if (indexToRemove != -1) { dieren.RemoveAt(indexToRemove); } } } } break; case 2: { List <int> gewicht = new List <int>(); foreach (Dier dier in dieren) { if (dier.Gewicht != 0) { gewicht.Add(dier.Gewicht); } } Console.WriteLine("Gemiddeld gewicht van al de dieren: " + Math.Round(gewicht.Average(), 1)); } break; case 3: { Dier dierDatZegt = null; List <string> DierNamens; DierNamens = new List <string>(); foreach (int i in Enum.GetValues(typeof(DierSoort))) { DierNamens.Add(Enum.GetName(typeof(DierSoort), i)); } switch (SelectMenu(false, DierNamens.ToArray())) { case 1: dierDatZegt = new Kat(); break; case 2: dierDatZegt = new Hond(); break; case 3: dierDatZegt = new Vis(); break; case 4: dierDatZegt = new Koe(); break; default: break; } if (dierDatZegt != null) { foreach (Dier dier in dieren) { if (dier.GetType() == dierDatZegt.GetType()) { dier.Zegt(); } } } } break; case 4: { opnieuw = false; dieren = new List <Dier>(); } break; case 5: { opnieuw = false; exit = true; } break; default: break; } } } } void PokemonsVergelijken() { Console.Clear(); Pokemon[] mijnPokemons = new Pokemon[10]; for (int i = 0; i < mijnPokemons.GetLength(0); i++) { bool Aangemaakt = false; mijnPokemons[i] = new Pokemon(); switch (i) { case 0: { mijnPokemons[i].Naam = "Bulbasaur"; mijnPokemons[i].Nummer = 1; mijnPokemons[i].HP_Base = 45; mijnPokemons[i].Attack_Base = 49; mijnPokemons[i].Defense_Base = 49; mijnPokemons[i].SpecialAttack_Base = 65; mijnPokemons[i].SpecialDefense_Base = 65; mijnPokemons[i].Speed_Base = 45; Aangemaakt = true; } break; case 1: { mijnPokemons[i].Naam = "Ivysaur"; mijnPokemons[i].Nummer = 2; mijnPokemons[i].HP_Base = 60; mijnPokemons[i].Attack_Base = 62; mijnPokemons[i].Defense_Base = 63; mijnPokemons[i].SpecialAttack_Base = 80; mijnPokemons[i].SpecialDefense_Base = 80; mijnPokemons[i].Speed_Base = 60; Aangemaakt = true; } break; case 2: { mijnPokemons[i].Naam = "Venusaur"; mijnPokemons[i].Nummer = 3; mijnPokemons[i].HP_Base = 80; mijnPokemons[i].Attack_Base = 82; mijnPokemons[i].Defense_Base = 83; mijnPokemons[i].SpecialAttack_Base = 100; mijnPokemons[i].SpecialDefense_Base = 100; mijnPokemons[i].Speed_Base = 80; Aangemaakt = true; } break; default: break; } if (Aangemaakt) { Console.WriteLine($"Pokemon {mijnPokemons[i].Naam} aangemaakt.\nGemiddelde score: {mijnPokemons[i].Average}\nTotaal score: {mijnPokemons[i].Total}"); Console.WriteLine(mijnPokemons[i].ToString()); } } Console.WriteLine("\nPokemons vergelijken:"); Console.WriteLine($"is {mijnPokemons[0].Naam} gelijk aan {mijnPokemons[0].Naam}?\tantwoord: {mijnPokemons[0].Equals(mijnPokemons[0])}"); Console.WriteLine($"is {mijnPokemons[0].Naam} gelijk aan {mijnPokemons[1].Naam}?\tantwoord: {mijnPokemons[0].Equals(mijnPokemons[1])}"); Console.WriteLine($"is {mijnPokemons[0].Naam} gelijk aan {mijnPokemons[2].Naam}?\tantwoord: {mijnPokemons[0].Equals(mijnPokemons[2])}"); Console.ReadKey(); } void Magic() { Console.Clear(); Manager manager = new Manager(); CreatureCard creatureCard = new CreatureCard(20, 30); SpellCard spellCard = new SpellCard(SpellEffect.burn); Land land = new Land("Mountains"); Articfact articfact = new Articfact("Adds 3 mana of any single color of your choice to your mana pool, then is discarded. Tapping this artifact can be played as an interrupt"); manager.cards.Add(creatureCard); manager.cards.Add(spellCard); manager.cards.Add(land); manager.cards.Add(articfact); foreach (Card card in manager.cards) { Console.WriteLine($"Card {manager.cards.IndexOf(card)+1}"); if (card is CreatureCard) { Console.WriteLine($"Creature card:\tHealth: {((CreatureCard)card).health} Attack: {((CreatureCard)card).attack}"); } if (card is SpellCard) { Console.WriteLine($"Spell card:\tEffect: {((SpellCard)card).effect}"); } if (card is Land) { Console.WriteLine($"Land card:\tEffect: {((Land)card).Terrain}"); } if (card is Articfact) { Console.WriteLine($"Artifact card:\tEffect: {((Articfact)card).Artifact_effect}"); } Console.WriteLine(); } Console.ReadKey(true); } void EenEigenHuis() { ConsoleColor consoleColor; Console.Clear(); List <Kamer> mijnKamers = new List <Kamer>(); //mijnKamers.Add(new Badkamer("badkamer",5,5,15,30)); //mijnKamers.Add(new Salon("Salon", 10, 10, 15, 20)); //mijnKamers.Add(new Kamer("Slaapkamer 1", 5, 7, 15, 35)); //mijnKamers.Add(new Kamer("Slaapkamer 2", 5, 7, 20, 35)); //mijnKamers.Add(new Gang("Gang 1", 3, 22, 25, 20)); //mijnKamers.Add(new Gang("Gang 2", 5, 5, 20, 30)); mijnKamers.Add(new Badkamer("badkamer", 5, 5, 1, 65)); mijnKamers.Add(new Salon("Salon", 10, 10, 1, 55)); mijnKamers.Add(new Slaapkamer("Slaapkamer 1", 5, 7, 1, 70)); mijnKamers.Add(new Slaapkamer("Slaapkamer 2", 5, 7, 6, 70)); mijnKamers.Add(new Gang("Gang 1", 3, 22, 11, 55)); mijnKamers.Add(new Gang("Gang 2", 5, 5, 6, 65)); mijnKamers.Add(new Garage("Garage 1", 6, 22, 14, 55)); mijnKamers.Add(new Tuin("Tuin", 19, 20, 1, 77)); mijnKamers.Add(new Zwembad("Zwembad", 5, 10, 10, 85)); mijnKamers.Add(new Terras("Terras", 15, 7, 4, 78)); Huis mijnHuis = new Huis(mijnKamers); Console.WriteLine("\tHuis bevat volgende kamers:\n"); Console.WriteLine(string.Format("\t{0,-7} {1,-5}: {2,-16} {3,3} {4,-5}", "Klassen", "Index", "Naam", "Opp.", "Prijs")); foreach (Kamer kamer in mijnHuis.Kamers) { string msg = string.Format("\t{4,-10} {0,2}: {1,-15} {2,3}m² {3,-5:0}€" , mijnHuis.Kamers.IndexOf(kamer) + 1, kamer.Naam, kamer.Oppervlakte, kamer.Prijs, kamer.GetType().ToString().Split('.')[1]); Console.WriteLine(msg); } consoleColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine(string.Format("\t{0,31}{2,3}m² {1,-5:0}€", "Totaal ", mijnHuis.BerekenPrijs(), mijnHuis.BerekenOpp())); Console.ForegroundColor = consoleColor; mijnHuis.TekenHuis(); Console.ReadKey(true); } int SelectMenu(bool clearScreen = true, params string[] menu) { int selection = 1; int cursTop = Console.CursorTop; int cursLeft = Console.CursorLeft; bool selected = false; ConsoleColor selectionForeground = Console.BackgroundColor; ConsoleColor selectionBackground = Console.ForegroundColor; if (clearScreen) { Console.SetCursorPosition(0, 0); Console.Clear(); } else { cursTop = Console.CursorTop; cursLeft = Console.CursorLeft; Console.SetCursorPosition(cursLeft, cursTop); } Console.CursorVisible = false; while (!selected) { for (int i = 0; i < menu.Length; i++) { if (selection == i + 1) { Console.ForegroundColor = selectionForeground; Console.BackgroundColor = selectionBackground; } Console.WriteLine(string.Format("{0,5}:{1,-40}", i + 1, menu[i])); Console.ResetColor(); } switch (Console.ReadKey(true).Key) { case ConsoleKey.UpArrow: selection--; break; case ConsoleKey.DownArrow: selection++; break; case ConsoleKey.Enter: selected = true; break; case ConsoleKey.D1: case ConsoleKey.NumPad1: selection = 1; break; case ConsoleKey.D2: case ConsoleKey.NumPad2: selection = 2; break; case ConsoleKey.D3: case ConsoleKey.NumPad3: selection = 3 <= menu.Length ? 3 : menu.Length; break; case ConsoleKey.D4: case ConsoleKey.NumPad4: selection = 4 <= menu.Length ? 4 : menu.Length; break; } selection = Math.Min(Math.Max(selection, 1), menu.Length); if (clearScreen) { Console.SetCursorPosition(0, 0); } else { Console.SetCursorPosition(cursLeft, cursTop); } } Console.Clear(); Console.CursorVisible = true; return(selection); } string InputStrFormat(string inputFormat = " : : :", int fixedLength = 14, char charStart = '0', char charEnd = '9') { string toReturn = inputFormat; bool exit = false; int cursX = Console.CursorLeft; int cursY = Console.CursorTop; int count = 0; foreach (char c in toReturn) { if (c == ' ') { } } while ((toReturn.Length < fixedLength) && (!exit)) { Console.CursorLeft = cursX; Console.CursorTop = cursY; Console.WriteLine(toReturn, fixedLength); char input = Console.ReadKey(true).KeyChar; if ((input >= charStart) && (input <= charEnd)) { //toReturn[0] = input; } } return(toReturn); } char InputChr(params string[] tekst) { for (int i = 0; i < tekst.GetLength(0); i++) { Console.WriteLine(tekst[i]); } return(Console.ReadKey(true).KeyChar); } string InputStr(params string[] tekst) { for (int i = 0; i < tekst.GetLength(0); i++) { if (tekst.GetLength(0) == 1) { Console.Write(tekst[i]); } else { Console.WriteLine(tekst[i]); } } return(Console.ReadLine()); } bool InputBool(string tekst = "j/n", bool Cyes = true, bool Cno = false) { Console.WriteLine(tekst); switch (Char.ToLower(Console.ReadKey(true).KeyChar)) { case 'y': case 'j': return(Cyes); case 'n': return(Cno); } return(false); } int InputInt(string tekst = "Getal: ") { Console.Write(tekst); return(int.Parse(Console.ReadLine())); } double InputDbl(string tekst = "Getal: ") { Console.Write(tekst); return(double.Parse(Console.ReadLine())); } }