static void Main(string[] args) { Tabuleiro tab = new Tabuleiro(8, 8); tab.ColocaPeca(new Rei(Cor.preta, tab), new Posicao(0, 2)); tab.ColocaPeca(new Torre(Cor.preta, tab), new Posicao(0, 0)); tab.ColocaPeca(new Torre(Cor.preta, tab), new Posicao(0, 7)); Tela.ImprimirTabuleiro(tab); }
/// <summary> /// Converte uma string FEN para o tabuleiro. /// </summary> /// <param name="fen">string FEN representando uma posicão</param> /// <param name="tabuleiro">tabuleiro a ser atualizado com a posicão FEN</param> public static void ConverteFenParaTabuleiro(string fen, Tabuleiro tabuleiro) { string[] partes = fen.Split(' '); string posicao_pecas = partes[0]; string cor_jogar = partes[1]; string estado_roque = partes[2]; string casa_en_passant = partes[3]; string contador_regra_50 = partes.Length > 4 ? partes[4] : "0"; string contador_movimentos = partes.Length > 4 ? partes[5] : "0"; int fileira = Defs.PRIMEIRA_FILEIRA; int coluna = Defs.PRIMEIRA_COLUNA; foreach (var caracter in posicao_pecas) { if (char.IsDigit(caracter)) { coluna += int.Parse(caracter.ToString()); } else { switch (caracter) { case '/': fileira += 1; coluna = Defs.PRIMEIRA_COLUNA; break; default: tabuleiro.ColocaPeca(fileira * Defs.NUMERO_COLUNAS + coluna++, caracter.ParaPeca()); break; } } } tabuleiro.CorJogar = cor_jogar.ParaCor(); if (estado_roque.Contains('K')) { tabuleiro.RoqueE1G1 = true; } if (estado_roque.Contains('Q')) { tabuleiro.RoqueE1C1 = true; } if (estado_roque.Contains('k')) { tabuleiro.RoqueE8G8 = true; } if (estado_roque.Contains('q')) { tabuleiro.RoqueE8C8 = true; } tabuleiro.IndiceEnPassant = Defs.ObtemIndiceDaPosicao(casa_en_passant); tabuleiro.ContadorRegra50 = int.Parse(contador_regra_50); tabuleiro.ContadorMovimentos = int.Parse(contador_movimentos); }