// retorna os possíveis movimentos de apenas uma peça
        public static List <Jogada> PossiveisMovimentosUmaPeca(int[,] tabuleiro, int x, int y)
        {
            int jogador = Tipos.pegaJogador(tabuleiro[x, y]);

            int[] valoresPecas = GetValoresPecas(jogador);

            // se for dama
            if (tabuleiro[x, y] == valoresPecas[0])
            {
                return(MovimentosDama(tabuleiro, x, y, valoresPecas[1], valoresPecas[2]));
            }

            List <Jogada> jogadas = new List <Jogada>();
            List <Jogada> captura = LeiDaMaioria(tabuleiro, x, y, valoresPecas[1], valoresPecas[2], null);

            // se teve alguma jogada com captura / peças comida
            if (captura != null)
            {
                foreach (Jogada jogada in captura)
                {
                    // verifica se a peça vira dama ao final do movimento
                    int [] ultimoMovimento = jogada.movimentos[jogada.movimentos.Count() - 1];
                    if (jogador == 1)
                    {
                        if (ultimoMovimento[0] == 7)
                        {
                            jogada.virouDama = true;
                        }
                    }
                    else
                    if (ultimoMovimento[0] == 0)
                    {
                        jogada.virouDama = true;
                    }

                    // adiciona a jogada de captura como jogada possível
                    jogadas.Add(jogada);
                }
                return(jogadas);
            }

            Jogada novaJogada;

            int[] posPeca = new int[2] {
                x, y
            };
            if (jogador == 1)
            {
                if ((x + 1 < 8 && y + 1 < 8) && Tipos.isVazio(tabuleiro[x + 1, y + 1]))
                {
                    novaJogada = new Jogada(posPeca);
                    novaJogada.movimentos.Add(new int[2] {
                        x + 1, y + 1
                    });
                    jogadas.Add(novaJogada);
                    // verifica se virou dama
                    if (jogador == 1)
                    {
                        if (x + 1 == 7)
                        {
                            novaJogada.virouDama = true;
                        }
                    }
                }
                if ((x + 1 < 8 && y - 1 >= 0) && Tipos.isVazio(tabuleiro[x + 1, y - 1]))
                {
                    novaJogada = new Jogada(posPeca);
                    novaJogada.movimentos.Add(new int[2] {
                        x + 1, y - 1
                    });
                    jogadas.Add(novaJogada);
                    if (jogador == 1)
                    {
                        if (x + 1 == 7)
                        {
                            novaJogada.virouDama = true;
                        }
                    }
                }
            }
            else
            {
                if ((x - 1 >= 0 && y + 1 < 8) && Tipos.isVazio(tabuleiro[x - 1, y + 1]))
                {
                    novaJogada = new Jogada(posPeca);
                    novaJogada.movimentos.Add(new int[2] {
                        x - 1, y + 1
                    });
                    jogadas.Add(novaJogada);
                    // verifica se virou dama
                    if (jogador == 2)
                    {
                        if (x - 1 == 0)
                        {
                            novaJogada.virouDama = true;
                        }
                    }
                }
                if ((x - 1 >= 0 && y - 1 >= 0) && Tipos.isVazio(tabuleiro[x - 1, y - 1]))
                {
                    novaJogada = new Jogada(posPeca);
                    novaJogada.movimentos.Add(new int[2] {
                        x - 1, y - 1
                    });
                    jogadas.Add(novaJogada);
                    if (jogador == 2)
                    {
                        if (x - 1 == 0)
                        {
                            novaJogada.virouDama = true;
                        }
                    }
                }
            }

            return(jogadas);
        }