public void Atualizar(Jogada jogada, int cor, string salaHash) { Partida partida = SALAS.FirstOrDefault(s => s.Key == salaHash).Value; Tabuleiro tabuleiro = partida.Tabuleiro; int numPecas = tabuleiro.Pecas.Count; if ((Cor)cor != tabuleiro.CorTurnoAtual) { Clients.Group(salaHash).alterarTabuleiro("Turno do adversário"); return; } if (!tabuleiro.AtualizarJogada(jogada)) { Clients.Group(salaHash).alterarTabuleiro("Jogada inválida"); return; } if (tabuleiro.Pecas.Count < numPecas) { tabuleiro.AplicarRodadaBonus(jogada); } else { tabuleiro.PercorrerTabuleiro(tabuleiro.CorTurnoAtual); } partida.EditarTabuleiro(tabuleiro); if (partida.ValidarFimJogo(tabuleiro.CorTurnoAtual)) { Clients.Group(salaHash).alterarTabuleiro("Você venceu!"); return; } Clients.Group(salaHash).alterarTabuleiro(tabuleiro.CorTurnoAtual.ToString()); }
public void Atualizar(JogadaModel jogadaModel, int cor, string salaHash) { Jogada jogada = new Jogada(jogadaModel.PosicaoEscolhida, jogadaModel.PosicaoAntiga); Partida partida = SALAS.FirstOrDefault(s => s.Key == salaHash).Value; Tabuleiro tabuleiro = partida.Tabuleiro; int numPecas = tabuleiro.Pecas.Count; if ((Cor)cor != tabuleiro.CorTurnoAtual) { return; } if (!tabuleiro.AtualizarJogada(jogada)) { return; } if (tabuleiro.Pecas.Count < numPecas) { tabuleiro.AplicarRodadaBonus(jogada); } else { tabuleiro.PercorrerTabuleiro(tabuleiro.CorTurnoAtual); } partida.EditarTabuleiro(tabuleiro); if (partida.ValidarFimJogo(tabuleiro.CorTurnoAtual)) { return; } Clients.Group(salaHash).ativaSom("movimentacao peca"); }
public void Editar_Tabuleiro() { Partida partida = new Partida(); Tabuleiro tabuleiroAntes = partida.Tabuleiro; partida.EditarTabuleiro(new Tabuleiro()); Tabuleiro tabuleiroDepois = partida.Tabuleiro; Assert.AreEqual(tabuleiroAntes.Pecas.Count, 24); Assert.AreEqual(tabuleiroDepois.Pecas.Count, 0); }
public void Eliminar_Peca_Preta_E_Terminar_Jogo() { Peca peca1 = new Peca(new Point(4, 4), Cor.BRANCA); Peca peca2 = new Peca(new Point(5, 5), Cor.PRETA); Peca peca3 = new Peca(new Point(1, 1), Cor.BRANCA); Partida partida = new Partida(); Jogada jogada1 = new Jogada(new Point(6, 6), new Point(4, 4)); partida.EditarTabuleiro(new Tabuleiro()); partida.Tabuleiro.AdicionarPeca(peca1); partida.Tabuleiro.AdicionarPeca(peca2); partida.Tabuleiro.AdicionarPeca(peca3); partida.Tabuleiro.PercorrerTabuleiro(Cor.BRANCA); partida.Tabuleiro.AtualizarJogada(jogada1); partida.Tabuleiro.AplicarRodadaBonus(jogada1); Assert.AreEqual(partida.Tabuleiro.Pecas.Count, 2); Assert.AreEqual(partida.Tabuleiro.CorTurnoAtual, Cor.PRETA); Assert.IsTrue(partida.ValidarFimJogo(partida.Tabuleiro.CorTurnoAtual)); Assert.IsTrue(partida.PartidaFinalizada); }