private async Task <string> GetNameAsync() { JArray array = new JArray(); array.Add("GetName"); PlayerRequestPacket packet = new PlayerRequestPacket(JsonConvert.SerializeObject(array)); PlayerResponsePacket response = await _serverConnectionContainer.TCP_Connections[0].SendAsync <PlayerResponsePacket>(packet); return(JsonConvert.DeserializeObject <string>(response.Response)); }
private async Task <string> MakeAMoveAsync(string[][][] boards) { JArray array = new JArray(); array.Add("MakeAMove"); array.Add(JToken.Parse(JsonConvert.SerializeObject(boards))); PlayerRequestPacket packet = new PlayerRequestPacket(JsonConvert.SerializeObject(array)); PlayerResponsePacket response = await _serverConnectionContainer.TCP_Connections[0].SendAsync <PlayerResponsePacket>(packet); return(JsonConvert.DeserializeObject <string>(response.Response)); }
private void PlayerRequestReceived(PlayerRequestPacket packet, Connection connection) { //Console.WriteLine($"Request received {packet.Request}"); JArray requestArray = JsonConvert.DeserializeObject <JArray>(packet.Request); PlayerResponsePacket response; switch (requestArray[0].ToObject <string>()) { case "Register": string register = _player.Register( requestArray[1].ToObject <string>(), requestArray[2].ToObject <string>(), requestArray[3].ToObject <int>()); response = new PlayerResponsePacket(JsonConvert.SerializeObject(register), packet); connection.Send(response); return; case "ReceiveStones": _player.ReceiveStones(requestArray[1].ToObject <string>()); return; case "MakeAMove": string move; try { move = _player.MakeAMove(requestArray[1].ToObject <string[][][]>()); } catch (PlayerException e) { move = e.Message; } response = new PlayerResponsePacket(JsonConvert.SerializeObject(move), packet); connection.Send(response); return; case "GetStone": string stone = _player.GetStone(); response = new PlayerResponsePacket(JsonConvert.SerializeObject(stone), packet); connection.Send(response); return; case "GetName": string name = _player.GetStone(); response = new PlayerResponsePacket(JsonConvert.SerializeObject(name), packet); connection.Send(response); return; } throw new PlayerClientException("Invalid operation sent to PlayerClient"); }
private async Task <string> RegisterAsync(string name, string aiType, int n) { JArray array = new JArray(); array.Add("Register"); array.Add(name); array.Add(aiType); array.Add(n); PlayerRequestPacket packet = new PlayerRequestPacket(JsonConvert.SerializeObject(array)); PlayerResponsePacket response = await _serverConnectionContainer.TCP_Connections[0].SendAsync <PlayerResponsePacket>(packet); return(JsonConvert.DeserializeObject <string>(response.Response)); }