private string GetVrijVeld(int[] data, Spelbord spelbord) { for (int i = 0; i < data.Length; i++) { int index = data[i]; if (spelbord.VeldIsVrij(spelbord.GetRaster()[index].ToString())) { return((index + 1).ToString()); } } return(""); }
public string DoeZet(Spelbord spelbord, char symboolSpeler, char symboolComputer) { //check twee-in-een rij van computer zelf string zet = spelbord.CheckTweeInEenRij(symboolComputer); if (zet.Length > 0) { return(zet); } //check twee-in-een rij van speler zet = spelbord.CheckTweeInEenRij(symboolSpeler); if (zet.Length > 0) { return(zet); } //voorkom dat speler drie op een rij krijgt if (spelbord.GetRaster()[4] == '5') { return("5"); } // indien eerste zet pak hoekpunt if (!spelbord.BevatSymbool(symboolComputer)) { int[] data = new int[] { 0, 2, 6, 8 }; string result = GetVrijVeld(data, spelbord); if (result.Length > 0) { return(result); } } // volgende zetten pak niet-hoekpunt else { int[] data = new int[] { 1, 3, 5, 7 }; string result = GetVrijVeld(data, spelbord); if (result.Length > 0) { return(result); } } // alle andere gevallen doe een willekeurige zet return(spelbord.EersteVrijeVeld()); }
static void Main(string[] args) { Spelbord spelbord = new Spelbord(); Computer computer = new Computer(); string speler1 = ""; string speler2 = ""; char symboolComputer = 'O'; char symboolSpeler = 'X'; Intro(); string spelkeuze = SpelTypeKeuze(); Console.WriteLine(); Console.WriteLine("Speler 1, hoe heet je?"); speler1 = Console.ReadLine(); if (spelkeuze == "2") { Console.WriteLine("Speler 2, hoe heet je?"); speler2 = Console.ReadLine(); } else { speler2 = "Computer"; } Console.WriteLine("{0} speelt tegen {1}!", speler1, speler2); spelbord.ShowRaster(); Console.WriteLine(); bool gewonnen = false; bool heeftRuimte = true; string speleraandebeurt = StartspelerBepalen(speler1, speler2); char symbool; while (!gewonnen && heeftRuimte) { symbool = (speleraandebeurt == speler1) ? 'X' : 'O'; string zet = ""; heeftRuimte = spelbord.SpaceRaster(); if (heeftRuimte) { if (spelkeuze == "1") { if (speleraandebeurt == speler1) { zet = spelbord.DoeZet(speleraandebeurt); } else { zet = computer.DoeZet(spelbord, symboolSpeler, symboolComputer); Console.WriteLine("computer kiest {0}", zet); } } else { zet = spelbord.DoeZet(speleraandebeurt); } spelbord.VerwerkZet(zet, symbool); spelbord.ShowRaster(); gewonnen = spelbord.Score(symbool); if (gewonnen) { Console.WriteLine("\nGefeliciteerd {0}!", speleraandebeurt); } speleraandebeurt = (speleraandebeurt == speler1) ? speler2 : speler1; } } if (!gewonnen) { Console.WriteLine(); Console.WriteLine("\nGelijkspel"); } Console.WriteLine("Press <ENTER> to EXIT!"); Console.ReadLine(); }