/// <summary> /// terug geven als de spel is gestart. /// </summary> /// <param name="game">huidige game.</param> /// <returns>De message die naar de client gaat als string. De namen van de spelers en de dimension.</returns> public static string CreateSpelgestartEvent(GameOX game) { // wat ga ik terug geven? // het commando en de lijste met spelers die meedoen, & gescheiden StringBuilder spelersnamen = new StringBuilder(); foreach (Speler speler in game.Spelers) { if (game.FindSpelerByNaam(speler) == speler.Naam) { speler.Naam = speler.Naam + 1; } break; } foreach (var speler in game.Spelers) { if (spelersnamen.Length == 0) { spelersnamen.AppendFormat("{0}", speler.Naam); } else { spelersnamen.AppendFormat("&{0}", speler.Naam); spelersnamen.AppendFormat("&{0}", speler.Dimension); } } return(string.Format("{0}{1}", CreateEvent(Events.SpelGestart), spelersnamen.ToString())); }
/// <summary> /// handle het command af. /// </summary> /// <param name="spelersnaam"> naam van de speler.</param> /// <param name="dimension">dimension van het spel.</param> /// <param name="tegenComputer">Tegen de cpmputer spelen.</param> /// <param name="game">Huidig game.</param> /// <return>De message die gereturnd moet worden. </return> /// <returns>De messge.</returns> public string Handle(string spelersnaam, short dimension, string tegenComputer, out GameOX game) { string returnMessage = string.Empty; game = null; if (string.IsNullOrWhiteSpace(tegenComputer)) { // zoek in de spelHandler of er al een open spel is met die dimension game = this.spelHandler.GetOpenSpelbyDimension(dimension); // zo ja, voeg speler toe en start spel if (game != null) { game.AddPlayer(spelersnaam, this.tcpClient, dimension); foreach (Speler speler in game.Spelers) { if (game.FindSpelerByNaam(speler) == speler.Naam) { speler.Naam = speler.Naam + 1; } break; } game.IsGestart(); game.TcpClients.Add(this.tcpClient); returnMessage = EventHelper.CreateSpelgestartEvent(game); return(returnMessage); // // bepaal wie er gaat beginnen // voor nu, speler 1 begint // stuur naar speler 1 bericht dat hij moet beginnen // stuur naar speler 2 bericht dat hij moet wachten } else { // nee, maak spel aan // voeg de speler toe // en zet op de wachtlijst game = this.spelHandler.CreateGame(dimension, spelersnaam, this.tcpClient); game.WachtOpAndereSpeler(); game.TcpClients.Add(this.tcpClient); // de speler moet wachten op een andere returnMessage = EventHelper.CreateWachtenOpEenAndereDeelnemenEvent(); } } else { string[] deNaam = spelersnaam.Split(new char[] { '*' }); game = this.spelHandler.CreateGame(dimension, deNaam[1], this.tcpClient); game.AddCpmputerSpeler(deNaam[0], dimension); game.IsGestart(); game.TcpClients.Add(this.tcpClient); returnMessage = EventHelper.CreateSpelgestartEvent(game); } // wat wil ik nu terugsturen? // Commandos.StartSpel), spelersnamen.ToString() return(returnMessage); }