/// <inheritdoc/> public override void SpelStartedHandler(short nummer, GameOX gameOX, Bord bord) { bool magZet = true; List <short> vrijeVelden = bord.VrijVelden(); foreach (short index in vrijeVelden) { bord.DoeZet(this, index); // als ik mijn teken daar invul, win ik dan. // of wint de tegenstander dan? if (bord.HeeftTekenGewonnen(this.TeGebruikenTeken)) { bord.ResetVeld(index); this.Zet(index, bord, gameOX); magZet = false; break; } else { Speler tegenSpeler = gameOX.TegenSpeler(this); bord.DoeZet(tegenSpeler, index); if (bord.HeeftTekenGewonnen(tegenSpeler.TeGebruikenTeken)) { // tegenstander heeft gewonnen bord.ResetVeld(index); this.Zet(index, bord, gameOX); magZet = false; break; } else { bord.ResetVeld(index); } } } if (magZet) { this.Zet(vrijeVelden[0], bord, gameOX); } }
/// <summary> /// Hier de spel is gestart. /// </summary> /// <param name="tcp">Huidige speler.</param> /// <param name="nummer">Wat de speler heeft gekozen.</param> /// <param name="gameOX">Het Spel.</param> public void SpelGestart(TcpClient tcp, short nummer, GameOX gameOX) { Bord hetBord = null; string tekenBord = string.Empty; string msge = string.Empty; foreach (Bord bord in gameOX.bords) { hetBord = bord; } foreach (Speler speler in gameOX.Spelers) { // Human Speler tegen computer. if (gameOX.TcpClients.Count == 1) { if (hetBord.HeeftTekenGewonnen(speler.TeGebruikenTeken)) { if (speler.TcpClient != tcp) { tekenBord = hetBord.TekenBord(); speler.BeeindigBord(); string msg = string.Format("{0}&{1},{2}", EventHelper.CreateEvents(Events.Winnaar), speler.Punten.ToString(), speler.Naam); this.ProcessStream(msg, tcp); msge = string.Format("{0}&{1}", EventHelper.CreateEvents(Events.NieuwRondje), tekenBord); this.ProcessStream(msge, tcp); break; } } else { speler.SpelStartedHandler(nummer, gameOX, hetBord); if (!hetBord.IsBordFinished()) { if (speler.TcpClient == tcp) { if (hetBord.HeeftTekenGewonnen(speler.TeGebruikenTeken)) { speler.BeeindigBord(); string msg = string.Format("{0}&{1},{2}", EventHelper.CreateEvents(Events.Winnaar), speler.Punten.ToString(), speler.Naam); this.ProcessStream(msg, tcp); tekenBord = hetBord.TekenBord(); msge = string.Format("{0}&{1}", EventHelper.CreateEvents(Events.NieuwRondje), tekenBord); this.ProcessStream(msge, tcp); break; } } else { tekenBord = hetBord.TekenBord(); string msg = string.Format("{0}&{1}{2}", EventHelper.CreateEvents(Events.YourTurn), tekenBord, this.vrijVeldenText); this.ProcessStream(msg, tcp); } } else { tekenBord = hetBord.TekenBord(); msge = string.Format("{0}&{1}", EventHelper.CreateEvents(Events.BordIsVol), tekenBord); this.ProcessStream(msge, tcp); msge = string.Format("{0}&{1}", EventHelper.CreateEvents(Events.NieuwRondje), tekenBord); this.ProcessStream(msge, tcp); break; } } } // Human speler tegen andre human speler. else { if (speler.TcpClient == tcp) { speler.SpelStartedHandler(nummer, gameOX, hetBord); tekenBord = hetBord.TekenBord(); if (hetBord.HeeftTekenGewonnen(speler.TeGebruikenTeken)) { speler.BeeindigBord(); msge = string.Format("{0}&{1},{2}", EventHelper.CreateEvents(Events.Winnaar), speler.Punten.ToString(), speler.Naam); this.ProcessReturnMessage(msge, this.TcpClients); msge = string.Format("{0}&{1}", EventHelper.CreateEvents(Events.NieuwRondje), tekenBord); this.ProcessStream(msge, tcp); break; } else if (hetBord.IsBordFinished()) { msge = string.Format("{0}&{1}", EventHelper.CreateEvents(Events.NieuwRondje), tekenBord); this.ProcessStream(msge, tcp); } else { msge = string.Format("{0}&{1},{2}", EventHelper.CreateWachtenOpEenAndereDeelnemenEvent(), tekenBord, speler.Naam); this.ProcessStream(msge, speler.TcpClient); } TcpClient tegenHuidigeSpeler; tegenHuidigeSpeler = this.TegenHuidigeSpeler(speler, gameOX); this.vrijVeldenText.Clear(); List <short> vrijVelden = hetBord.VrijVelden(); foreach (short velder in vrijVelden) { this.vrijVeldenText.AppendFormat("{0},", velder); } if (this.nogNietBezit) { tekenBord = hetBord.TekenBord(); string msg = string.Format("{0}&{1}{2}", EventHelper.CreateEvents(Events.YourTurn), tekenBord, this.vrijVeldenText); this.ProcessStream(msg, tegenHuidigeSpeler); } } } } }