public async Task <IActionResult> NovoJogo(string playerName, string playerClass) { HttpClient client = MyGameHTTPClient.Client; string path = "/api/NewGame"; GameApiRequest req = new GameApiRequest(playerName, playerClass); string json = JsonConvert.SerializeObject(req); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("NovoJogo")); } string json_r = await response.Content.ReadAsStringAsync(); GameApiResponse gr = JsonConvert.DeserializeObject <GameApiResponse>(json_r); Jogo novoJogo = new Jogo(playerName, playerClass); novoJogo.AtualizarJogo(gr); Repositorio.AdicionarJogo(novoJogo); return(View("Jogo", novoJogo)); }
public async Task <IActionResult> GameFinish([FromBody] GameApiRequest gameRequest) { await _gameTransactions.GameFinishAsync(gameRequest.winner, gameRequest.opponent); return(new CustomActionResult((int)HttpStatusCode.OK, true)); }
public async Task <IActionResult> NovoAutoJogo(int rondas) { HttpClient client = MyGameHTTPClient.Client; string path = "/api/NewGame"; string nome = ""; if (rondas == 3) { nome = "auto3"; } else if (rondas == 7) { nome = "auto7"; } else { nome = "auto0"; } GameApiRequest req = new GameApiRequest(nome, "S"); string json = JsonConvert.SerializeObject(req); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("NovoAutoJogo")); } string json_r = await response.Content.ReadAsStringAsync(); GameApiResponse gr = JsonConvert.DeserializeObject <GameApiResponse>(json_r); Jogo novoJogo = new Jogo(nome, "S"); novoJogo.AtualizarJogo(gr); //int ronda = 1; while (novoJogo.PontosVida != 0 && gr.Result != RoundResult.SuccessVictory) { path = "/api/Play"; if (gr.RoundNumber == rondas) { novoJogo.Acao = PlayerAction.Quit; break; } else { novoJogo.AutoPlay(gr, rondas); } PlayApiRequest pedido = new PlayApiRequest(novoJogo.ID, novoJogo.Acao); json = JsonConvert.SerializeObject(pedido); request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("/")); } json_r = await response.Content.ReadAsStringAsync(); gr = JsonConvert.DeserializeObject <GameApiResponse>(json_r); novoJogo.AtualizarJogo(gr); //ronda++; } novoJogo.ScoreJogo(); return(View("Resultados", novoJogo)); }