Пример #1
0
        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());
        }
Пример #2
0
        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");
        }
Пример #3
0
        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);
        }
Пример #4
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);
        }