public void Nao_Aplicar_Rodada_Bonus_Sem_Proxima_Peca() { Peca peca1 = new Peca(new Point(1, 1), Cor.BRANCA); Peca peca2 = new Peca(new Point(2, 2), Cor.PRETA); Tabuleiro tabuleiro = new Tabuleiro(); Point posicaoEsperada1 = new Point(3, 3); Jogada jogada1 = new Jogada(posicaoEsperada1, new Point(1, 1)); tabuleiro.AdicionarPeca(peca1); tabuleiro.AdicionarPeca(peca2); int numPecasSalto1 = tabuleiro.Pecas.Count; tabuleiro.PercorrerTabuleiro(Cor.BRANCA); int numPosicoes1 = tabuleiro.Pecas[0].PosicoesPossiveis.Count; tabuleiro.AtualizarJogada(jogada1); tabuleiro.PercorrerTabuleiro(Cor.BRANCA); int numPosicoes2 = tabuleiro.Pecas[0].PosicoesPossiveis.Count; int numPecasAtual = tabuleiro.Pecas.Count; Assert.AreEqual(numPecasSalto1, 2); Assert.AreEqual(numPecasAtual, 1); Assert.AreEqual(numPosicoes1, 1); Assert.AreEqual(numPosicoes2, 2); }
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 Trocar_De_Turno_Apos_Movimento() { Peca peca1 = new Peca(new Point(4, 4), Cor.BRANCA); Peca peca2 = new Peca(new Point(5, 5), Cor.PRETA); Tabuleiro tabuleiro = new Tabuleiro(); Point posicaoEsperada1 = new Point(6, 6); Jogada jogada1 = new Jogada(posicaoEsperada1, new Point(4, 4)); tabuleiro.AdicionarPeca(peca1); tabuleiro.AdicionarPeca(peca2); tabuleiro.PercorrerTabuleiro(Cor.BRANCA); Cor cor1 = tabuleiro.CorTurnoAtual; tabuleiro.AtualizarJogada(jogada1); Cor cor2 = tabuleiro.CorTurnoAtual; tabuleiro.AplicarRodadaBonus(jogada1); Cor cor3 = tabuleiro.CorTurnoAtual; Assert.AreEqual(cor1, Cor.BRANCA); Assert.AreEqual(cor2, Cor.BRANCA); Assert.AreEqual(cor3, Cor.PRETA); }
public HttpResponseMessage Atualizar([FromBody] Jogada jogada, int cor) { Tabuleiro tabuleiro = tabuleiroRepository.ObterTabuleiro(); int numPecas = tabuleiro.Pecas.Count; if ((Cor)cor != tabuleiro.CorTurnoAtual) { return(ResponderErro("Turno do adversário")); } if (!tabuleiro.AtualizarJogada(jogada)) { return(ResponderErro("Jogada inválida")); } if (tabuleiro.Pecas.Count < numPecas) { tabuleiro.AplicarRodadaBonus(jogada); } else { tabuleiro.PercorrerTabuleiro(tabuleiro.CorTurnoAtual); } tabuleiroRepository.EditarTabuleiro(tabuleiro); if (tabuleiro.ValidarFimJogo()) { return(ResponderOK("Você venceu!")); } return(ResponderOK(tabuleiro.CorTurnoAtual)); }
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 Nao_Trocar_De_Turno_Em_Rodada_Bonus() { 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(7, 7), Cor.PRETA); Tabuleiro tabuleiro = new Tabuleiro(); Point posicaoEsperada1 = new Point(6, 6); Point posicaoEsperada2 = new Point(8, 8); Jogada jogada1 = new Jogada(posicaoEsperada1, new Point(4, 4)); Jogada jogada2 = new Jogada(posicaoEsperada2, new Point(6, 6)); tabuleiro.AdicionarPeca(peca1); tabuleiro.AdicionarPeca(peca2); tabuleiro.AdicionarPeca(peca3); Cor cor1 = tabuleiro.CorTurnoAtual; tabuleiro.PercorrerTabuleiro(Cor.BRANCA); Cor cor2 = tabuleiro.CorTurnoAtual; tabuleiro.AtualizarJogada(jogada1); Cor cor3 = tabuleiro.CorTurnoAtual; tabuleiro.AplicarRodadaBonus(jogada1); Cor cor4 = tabuleiro.CorTurnoAtual; tabuleiro.AtualizarJogada(jogada2); Cor cor5 = tabuleiro.CorTurnoAtual; tabuleiro.AplicarRodadaBonus(jogada2); Cor cor6 = tabuleiro.CorTurnoAtual; Assert.AreEqual(cor1, Cor.BRANCA); Assert.AreEqual(cor2, Cor.BRANCA); Assert.AreEqual(cor2, Cor.BRANCA); Assert.AreEqual(cor4, Cor.BRANCA); Assert.AreEqual(cor5, Cor.BRANCA); Assert.AreEqual(cor6, Cor.PRETA); Assert.IsTrue(peca1.IsDama); }
public void Peca_Preta_Se_Torna_Dama() { Peca peca2 = new Peca(new Point(2, 2), Cor.PRETA); Tabuleiro tabuleiro = new Tabuleiro(); Jogada jogada2 = new Jogada(new Point(1, 1), new Point(2, 2)); tabuleiro.AdicionarPeca(peca2); tabuleiro.PercorrerTabuleiro(Cor.PRETA); bool estado2 = tabuleiro.AtualizarJogada(jogada2); Assert.IsTrue(estado2); Assert.IsTrue(peca2.IsDama); }
public void Peca_Branca_Se_Torna_Dama() { Peca peca1 = new Peca(new Point(7, 7), Cor.BRANCA); Tabuleiro tabuleiro = new Tabuleiro(); Jogada jogada1 = new Jogada(new Point(8, 8), new Point(7, 7)); tabuleiro.AdicionarPeca(peca1); tabuleiro.PercorrerTabuleiro(Cor.BRANCA); bool estado1 = tabuleiro.AtualizarJogada(jogada1); Assert.IsTrue(estado1); Assert.IsTrue(peca1.IsDama); }
public void Nao_Mover_Peca_Para_Posicao_Nao_Calculada() { Peca peca1 = new Peca(new Point(1, 1), Cor.BRANCA); Peca peca2 = new Peca(new Point(2, 2), Cor.PRETA); Tabuleiro tabuleiro = new Tabuleiro(); Jogada jogada = new Jogada(new Point(4, 1), new Point(1, 1)); tabuleiro.AdicionarPeca(peca1); tabuleiro.AdicionarPeca(peca2); tabuleiro.PercorrerTabuleiro(Cor.BRANCA); bool estado = tabuleiro.AtualizarJogada(jogada); Assert.IsFalse(estado); Assert.AreEqual(peca1.PosicoesPossiveis.Count, 1); Assert.AreEqual(peca2.PosicoesPossiveis.Count, 0); }
public void Nao_Mover_Peca_Com_Coordenadas_Incorretas() { Peca peca1 = new Peca(new Point(1, 1), Cor.BRANCA); Peca peca2 = new Peca(new Point(2, 2), Cor.PRETA); Tabuleiro tabuleiro = new Tabuleiro(); Point posicaoEsperada = new Point(3, 3); Jogada jogada = new Jogada(posicaoEsperada, new Point(7, 7)); tabuleiro.AdicionarPeca(peca1); tabuleiro.AdicionarPeca(peca2); tabuleiro.PercorrerTabuleiro(Cor.BRANCA); bool estado = tabuleiro.AtualizarJogada(jogada); Assert.IsFalse(estado); Assert.AreEqual(peca1.PosicoesPossiveis.Count, 1); Assert.AreEqual(peca2.PosicoesPossiveis.Count, 0); }
public void Eliminar_Peca_Preta_Quando_Branca_Saltar_Sobre() { Peca peca1 = new Peca(new Point(1, 1), Cor.BRANCA); Peca peca2 = new Peca(new Point(2, 2), Cor.PRETA); Tabuleiro tabuleiro = new Tabuleiro(); Point posicaoEsperada = new Point(3, 3); Jogada jogada = new Jogada(posicaoEsperada, new Point(1, 1)); tabuleiro.AdicionarPeca(peca1); tabuleiro.AdicionarPeca(peca2); int numPecasAntes = tabuleiro.Pecas.Count; tabuleiro.PercorrerTabuleiro(Cor.BRANCA); tabuleiro.AtualizarJogada(jogada); int numPecasDepois = tabuleiro.Pecas.Count; Assert.AreEqual(numPecasAntes, 2); Assert.AreEqual(numPecasDepois, 1); Assert.AreEqual(peca1.PosicoesPossiveis.Count, 1); Assert.AreEqual(peca2.PosicoesPossiveis.Count, 0); }