/// <summary> /// Stuur een message naar de server dat de speler tegen de computer wil spelen. /// </summary> /// <param name="naam">De naam van de speler.</param> /// <param name="dimension">dimension.</param> public void SpelTegenComputer(string naam, short dimension) { string message = CommandoHelper.CreateSpelTegenComputer(naam, dimension); NetworkStream stream = this.SendMessage(this.tcpClient, message); this.StartListening(stream, this.tcpClient); }
/// <summary> /// Stuur de naam met de dimension naar de server. /// </summary> /// <param name="spelersnaam">Speler naam.</param> /// <param name="dimension">Dimension.</param> public void VerzoekOmStartenSpel(string spelersnaam, short dimension) { string message = CommandoHelper.CreateVerzoekTotDeelnemenSpelCommando(spelersnaam, dimension); NetworkStream stream = this.SendMessage(this.tcpClient, message); this.StartListening(stream, this.tcpClient); }
private void BeeindigSpel() { string message = CommandoHelper.BeeindigSpel(); NetworkStream stream = this.SendMessage(this.tcpClient, message); this.StartListening(stream, this.tcpClient); }
private void NieuwRondje(string nieuwRondje) { string message = CommandoHelper.NieuwRondje(nieuwRondje); NetworkStream stream = this.SendMessage(this.tcpClient, message); this.StartListening(stream, this.tcpClient); }
private void DoeZet(short nummer) { string message = CommandoHelper.DoeZet(nummer); NetworkStream stream = this.SendMessage(this.tcpClient, message); this.StartListening(stream, this.tcpClient); }
private void SpelerGestart(string teken) { string message = CommandoHelper.CreateSpelerGestartCommando(teken); NetworkStream stream = this.SendMessage(this.tcpClient, message); this.StartListening(stream, this.tcpClient); }
/// <summary> /// stuurt een berichtje naar de server dat de speler wil spelen. /// </summary> /// <param name="naam">De naam van de speler.</param> /// <param name="dimension">De dimensies van het speelvlak.</param> /// <param name="wilTegenComputerSpelen">Wil tegen computer spelen of niet.</param> /// <param name="socket">De client.</param> public void VerzoekOmStartenSpel(string naam, int dimension, bool wilTegenComputerSpelen, Socket socket) { if (socket is null) { throw new ArgumentNullException(nameof(socket)); } string message = CommandoHelper.CreëertVerzoekTotDeelnameSpelCommando(naam, dimension, wilTegenComputerSpelen); this.Send(this.clientSocket, message); }
/// <summary> /// Maakt een nieuwe berichtje dat de speler wil niet mee doen. /// Stuurt het berichtje naar de server. /// </summary> private void WilNietNieuweRondjeCommando() { string msg = CommandoHelper.CreeertWilNietRonde(); this.Send(this.clientSocket, msg); }
/// <summary> /// Maak een bericht dat de speler een inzet deed. /// Stuur het berichtje naar de server. /// </summary> /// <param name="inzet">De inzet.</param> private void DoeZetCommando(int inzet) { string msg = CommandoHelper.CreeertDoeZetCommando(inzet.ToString()); this.Send(this.clientSocket, msg); }
/// <summary> /// Maak een bericht dat de speler gaat starten. /// stuurt een bericht naar de server dat de speler gaat starten. /// </summary> private void StartHetSpelCommando() { string msg = CommandoHelper.CreeertStartHetSpelCommando(); this.Send(this.clientSocket, msg); }
/// <summary> /// Stuurt een bericht naar de server er in staat de commando met de teken die de speler heeft gekozen. /// </summary> /// <param name="teken">De teken die de speler heeft gekozen.</param> private void ZetTekenCommando(string teken) { string message = CommandoHelper.CreeertZetTekenCommando(teken); this.Send(this.clientSocket, message); }
/// <summary> /// Process van de server. /// </summary> /// <param name="stream">Stream die uit de client komt.</param> /// <param name="client"> Client.</param> /// <returns>informatie.</returns> /// <exception cref="System.InvalidOperationException">Wordt gegooid wanneer een commando wordt aangeroepen op een ongeldig moment.</exception> protected override string ProcessStream(string stream, TcpClient client) { // bepaal de opdracht // de opdracht is het gedeelte in de msg voor de # // daarna komen de parameters. string commandParams = string.Empty; string returnMessage = null; GameOX game = null; Commandos commando = CommandoHelper.SplitCommandAndParamsFromMessage(stream, out commandParams); /*foreach (GameOX games in this.gameOXen) * { * foreach (TcpClient tcp in games.TcpClients) * { * if (tcp == client) * { * game = games; * } * } * }*/ // Add een client to clientLijst. try { switch (commando) { // Verdeel between de naam van de speler en de dimension van het bord // wanneer de commandos is equal VerzoekTotDeelnemenSpel case Commandos.VerzoekTotDeelnemenSpel: VerzoekTotDeelnemenSpelCommandHandler handler = new VerzoekTotDeelnemenSpelCommandHandler(this.spelHandler, client); returnMessage = handler.HandleFromMessage(commandParams, out game); if (game.Status == GameOXStatussen.Gestart) { this.ProcessReturnMessage(returnMessage, game.TcpClients); game.Start(client, game); } else { this.ProcessReturnMessage(returnMessage, client); } break; case Commandos.SpelTegenComputer: VerzoekTotDeelnemenSpelCommandHandler handlerTegenComputerSpelen = new VerzoekTotDeelnemenSpelCommandHandler(this.spelHandler, client); returnMessage = handlerTegenComputerSpelen.HandleFromMessage(commandParams, out game); this.ProcessReturnMessage(returnMessage, client); game = this.spelHandler.GetGameFromTcpClient(client); game.Start(client, game); break; case Commandos.SpelerGestart: game = this.spelHandler.GetGameFromTcpClient(client); Teken teken = TekenHelper.CreateTekenEnum(commandParams); TekenHelper.AddTekenToSpeler(teken, game, client); returnMessage = EventHelper.CreateEvents(Events.YourTurn); this.ProcessReturnMessage(returnMessage, client); // stuur een wacht bericht naar andere speler. returnMessage = this.spelHandler.TegeHuidigeClient(client, game.TcpClients, out this.tegenHuidigeClient); this.ProcessReturnMessage(returnMessage, this.tegenHuidigeClient); break; case Commandos.StartSpel: // returnMessage = EventHelper.CreateSpelerGestartEvent(); // ProcessReturnMessage(returnMessage, tcpClients); break; case Commandos.DoeZet: // stuur een wacht bericht naar andere speler. returnMessage = this.spelHandler.TegeHuidigeClient(client, game.TcpClients, out this.tegenHuidigeClient); this.ProcessReturnMessage(returnMessage, this.tegenHuidigeClient); short nummer = short.Parse(commandParams); // Handel de info van de speler this.spelHandler.GetGameFromTcpClient(client); game = this.spelHandler.GetGameFromTcpClient(client); game.ChekOfHetValidBeZitIs(client, nummer, game); break; case Commandos.WachtenOpAndereDeelnemer: if (game == null) { throw new InvalidOperationException($"Het commando {nameof(Commandos.WachtenOpAndereDeelnemer)} mag niet worden gebruikt wanneer er nog geen game is gestart."); } this.ProcessReturnMessage(returnMessage, game.TcpClients); break; case Commandos.NieuwRondje: if (game == null) { throw new InvalidOperationException($"Het commando {nameof(Commandos.WachtenOpAndereDeelnemer)} mag niet worden gebruikt wanneer er nog geen game is gestart."); } this.ProcessReturnMessage(returnMessage, game.TcpClients); break; case Commandos.BeeindigSpel: game = this.spelHandler.GetGameFromTcpClient(client); game.StartNieuwRondje(client, game); break; } } catch (Exception exp) { // ok dan krijg ik een foutmelding, stuur die dan terug returnMessage = EventHelper.CreateErrorEvent(exp); } return(returnMessage); }
public void VerzoekOmStartenSpel(String spelersnaam, short dimension) { String message = CommandoHelper.CreateVerzoekTotDeelnemenSpelCommando(spelersnaam, dimension); SendMessage(this._tcpClient, message); }