示例#1
0
 /// <summary>
 /// Retornar se alguem ganhou na vertical (Coluna).
 /// </summary>
 /// <returns>Retorna 0 para nenhum jogador ou o numero do jogador que ganhou, em caso de vitória.</returns>
 public int VerificaColuna()
 {
     for (int coluna = 0; coluna < TabuleiroJogo.GetLength(0); coluna++)
     {
         int contador = 1;
         for (int linha = TabuleiroJogo.GetLength(1) - 1; linha >= 1; linha--)
         {
             if (TabuleiroJogo[coluna, linha] == 0)
             {
                 break;
             }
             if (TabuleiroJogo[coluna, linha]
                 == TabuleiroJogo[coluna, linha - 1])
             {
                 if (++contador == 4)
                 {
                     return(TabuleiroJogo[coluna, linha]);
                 }
             }
             else
             {
                 contador = 1;
             }
         }
     }
     return(0);
 }
示例#2
0
文件: Tela.cs 项目: ozMoreira/CSharp
        public static void ImprimirTabuleiro(TabuleiroJogo tab, bool[,] posicoesPossiveis)
        {
            ConsoleColor fundoOriginal = Console.BackgroundColor;
            ConsoleColor fundoAlterado = ConsoleColor.DarkGray;

            for (int l = 0; l < tab.Linhas; l++)
            {
                Console.Write(8 - l + "| ");
                for (int c = 0; c < tab.Colunas; c++)
                {
                    if (posicoesPossiveis[l, c])
                    {
                        Console.BackgroundColor = fundoAlterado;
                    }
                    else
                    {
                        Console.BackgroundColor = fundoOriginal;
                    }
                    ImprimirPeca(tab.peca(l, c));
                    Console.BackgroundColor = fundoOriginal;
                }
                Console.WriteLine();
            }
            Console.WriteLine("-------------------\n    A B C D E F G H");
            Console.BackgroundColor = fundoOriginal;
        }
示例#3
0
        public void TesteDeVencedores()
        {
            TabuleiroJogo tabuleiro = new TabuleiroJogo();
            int           jogador   = tabuleiro.JogadorAtual;

            tabuleiro.Jogar(tabuleiro.JogadorAtual, 0, 0);
            Assert.AreEqual(tabuleiro.Tabuleiro[0][0], jogador);
            try
            {
                tabuleiro.Jogar(tabuleiro.JogadorAtual, 0, 0);
            }
            catch
            {
                //Exceção esperada.
            }
            Assert.AreEqual(tabuleiro.Tabuleiro[0][0], jogador);

            tabuleiro = new TabuleiroJogo(new int [][] {
                new int[] { 1, 1, 1 },
                new int[] { 0, 0, 0 },
                new int[] { 0, 0, 0 }
            });

            Assert.AreEqual(tabuleiro.VerificarGanhador(), 1);

            tabuleiro = new TabuleiroJogo(new int[][] {
                new int[] { 0, 1, 1 },
                new int[] { 0, 0, 0 },
                new int[] { 2, 2, 2 }
            });

            Assert.AreEqual(2, tabuleiro.VerificarGanhador());

            tabuleiro = new TabuleiroJogo(new int[][] {
                new int[] { 0, 2, 1 },
                new int[] { 0, 2, 0 },
                new int[] { 1, 2, 2 }
            });

            Assert.AreEqual(2, tabuleiro.VerificarGanhador());


            tabuleiro = new TabuleiroJogo(new int[][] {
                new int[] { 1, 2, 1 },
                new int[] { 0, 1, 0 },
                new int[] { 2, 2, 1 }
            });

            Assert.AreEqual(1, tabuleiro.VerificarGanhador());

            tabuleiro = new TabuleiroJogo(new int[][] {
                new int[] { 2, 2, 1 },
                new int[] { 0, 1, 0 },
                new int[] { 1, 2, 1 }
            });

            Assert.AreEqual(1, tabuleiro.VerificarGanhador());
        }
示例#4
0
 public Partida()
 {
     tab                 = new TabuleiroJogo(8, 8);
     Turno               = 1;
     JogadorAtual        = Cor.Branca;
     Terminada           = false;
     Xeque               = false;
     vulneravelEnPassant = null;
     pecas               = new HashSet <Peca>();
     capturadas          = new HashSet <Peca>();
     SobeJogo();
 }
示例#5
0
文件: Tela.cs 项目: ozMoreira/CSharp
 public static void ImprimirTabuleiro(TabuleiroJogo tab)
 {
     for (int l = 0; l < tab.Linhas; l++)
     {
         Console.Write(8 - l + "| ");
         for (int c = 0; c < tab.Colunas; c++)
         {
             ImprimirPeca(tab.peca(l, c));
         }
         Console.WriteLine();
     }
     Console.WriteLine("-------------------\n    A B C D E F G H");
 }
示例#6
0
        /// <summary>
        /// Retornar se alguem ganhou na Diagonal.
        /// </summary>
        /// <returns>Retorna 0 para nenhum jogador ou o numero do jogador que ganhou, em caso de vitória.</returns>
        public int VerificarDiagonal()
        {
            for (int linha = TabuleiroJogo.GetLength(1) - 1; linha >= 3; linha--)
            {
                for (int coluna = 0; coluna < TabuleiroJogo.GetLength(0); coluna++)
                {
                    if (TabuleiroJogo[coluna, linha] == 0)
                    {
                        continue;
                    }

                    if (coluna + 1 - 4 >= 0)
                    {
                        int i;
                        for (i = 1; i < 4; i++)
                        {
                            if (TabuleiroJogo[coluna, linha] !=
                                TabuleiroJogo[coluna - i, linha - i])
                            {
                                break;
                            }
                        }
                        if (i == 4)
                        {
                            return(TabuleiroJogo[coluna, linha]);
                        }
                    }

                    if (coluna - 1 + 4 < this.TabuleiroJogo.GetLength(0))
                    {
                        int i;
                        for (i = 1; i < 4; i++)
                        {
                            if (TabuleiroJogo[coluna, linha] !=
                                TabuleiroJogo[coluna + i, linha - i])
                            {
                                break;
                            }
                        }
                        if (i == 4)
                        {
                            return(TabuleiroJogo[coluna, linha]);
                        }
                    }
                }
            }

            return(0);
        }
示例#7
0
        public void TestarMudarJogador()
        {
            TabuleiroJogo tabuleiro = new TabuleiroJogo();
            int           jogador   = tabuleiro.JogadorAtual;

            tabuleiro.Jogar(tabuleiro.JogadorAtual, 0, 0);
            //Verifica se a mudança de turno está ocorrendo normalmente.
            if (jogador == 1)
            {
                Assert.AreEqual(2, tabuleiro.JogadorAtual);
            }
            else if (jogador == 2)
            {
                Assert.AreEqual(1, tabuleiro.JogadorAtual);
            }
        }
 private void ReiniciarJogo()
 {
     this.Tabuleiro = new TabuleiroJogo();
 }
示例#9
0
文件: Peao.cs 项目: ozMoreira/CSharp
 public Peao(TabuleiroJogo tab, Cor cor, Partida partida)
     : base(tab, cor)
 {
     this.partida = partida;
 }
示例#10
0
 public Bispo(TabuleiroJogo tab, Cor cor)
     : base(tab, cor)
 {
 }
示例#11
0
 public Cavalo(TabuleiroJogo tab, Cor cor)
     : base(tab, cor)
 {
 }
 public String Reiniciar()
 {
     Jogo = new TabuleiroJogo();
     return("Jogo Reiniciado");
 }
示例#13
0
 public Rainha(TabuleiroJogo tab, Cor cor)
     : base(tab, cor)
 {
 }
示例#14
0
 public Torre(TabuleiroJogo tab, Cor cor) : base(tab, cor)
 {
 }