public static bool ProcuraPeca(char [] splitedMove, bool Cor) { CorAtual = Cor; int MovePeca = 0; foreach (var casa in state) { Array.Clear(MovimentoAtual, 0, 0); bool Captura = false; if (casa.Peca != null) { StateAtual = casa; MovimentoAtual[0] = splitedMove[0]; int isPawn = Utilidades.IsPawn(splitedMove, casa, Cor); if (isPawn == 1) { MovimentoAtual[2] = splitedMove[1]; MovimentoAtual[1] = splitedMove[0]; MovimentoAtual[0] = 'P'; } if (splitedMove[1] == 'X') { Captura = true; MovimentoAtual[2] = splitedMove[3]; MovimentoAtual[1] = splitedMove[2]; MovimentoAtual[0] = MovimentoAtual[0] == 'P' ? 'P' : splitedMove[0]; } if (isPawn != -1) { MovePeca = Utilidades.MovePeca(Captura); if (casa.Peca?.Cor == Cor && casa.Peca?.Tipo == MovimentoAtual[0]) { if (MovimentoAtual[0] == '0') { MovimentoAtual = splitedMove; } if (MovePeca != 0) { break; } } } } } if (MovePeca == 1) { return(true); } Console.WriteLine("Movimento Inválido, por favor insira outro!"); return(false); }
public Casa GeraCasa(int i, int j) { Casa slot = new Casa(); Boolean cor = false; if (i == 1 || i == 2) { cor = true; } if (i == 1 || i == 8) { switch (j) { case 0: case 7: slot.Peca = new Tower(cor); break; case 1: case 6: slot.Peca = new Knight(cor); break; case 2: case 5: slot.Peca = new Bishop(cor); break; case 3: slot.Peca = new Queen(cor); break; case 4: slot.Peca = new King(cor); break; default: break; } } if (i == 2 || i == 7) { slot.Peca = new Pawn(cor); } slot.PosLetra = slot.Convert(j); slot.PosNum = i; return(slot); }