Herşey ßir Sokak Çocugunun eLini Ceßine Sokması Kadar ßoŞş ve senin 'Naßer.?' Soruna 'iyidiR' Dedigim Kadar YaLaNn. !
private bool CanItMoveThere(string id, int diffY, int diffX, PiecePosition currentpos) { if (isThereAnAlly(id, new PiecePosition(currentpos.row + diffY, currentpos.column + diffX)) == true) return false; switch (id[1]) { case '1': //Pawn if ( CrossSectionEnemy(currentpos, id) != String.Empty ) { string temporalCheck = CrossSectionEnemy(currentpos, id); if (temporalCheck.Length == 1) { if (temporalCheck[0] == 'l') { if (id[0] == 'a') { if (diffX == -1 && diffY == -1) return true; } else { if (diffX == -1 && diffY == 1) return true; } } else { if (id[0] == 'a') { if (diffX == 1 && diffY == -1) return true; } else { if (diffX == 1 && diffY == 1) return true; } } } else if (temporalCheck.Length == 2) { if (id[0] == 'a') { if ((diffX == 1 || diffX == -1) && diffY == -1) return true; } else { if ((diffX == 1 || diffX == -1) && diffY == 1) return true; } } } if( !EnemyOnTheWay_Pawn(currentpos,id).Equals(new PiecePosition(-1,-1)) ) return false; if (id[0] == 'a') { if (currentpos.row == 6) { if ((diffY == -2 || diffY == -1) && diffX == 0) return true; } else { if (diffY == -1 && diffX == 0) return true; } } else { if (currentpos.row == 1) { if ((diffY == 2 || diffY == 1) && diffX == 0) return true; } else { if (diffY == 1 && diffX == 0) return true; } } break; case '2': //Knight if ((Math.Abs(diffX) == 2 && Math.Abs(diffY) == 1) || (Math.Abs(diffY) == 2 && Math.Abs(diffX) == 1)) return true; break; case '3': //Bishop (Needed) if ( Math.Abs(diffX) == Math.Abs(diffY) && diffX != 0 && diffY != 0 && !isPathBlocked(true, false, currentpos, new PiecePosition(currentpos.row+diffY,currentpos.column+diffX) )) return true; break; case '4': //Rook (Needed) if ((diffY != 0 && diffX == 0) || (diffX != 0 && diffY == 0)) { if (!isPathBlocked(false, true, currentpos, new PiecePosition(currentpos.row + diffY, currentpos.column + diffX))) return true; } break; case '5': //Queen (Needed) if (((Math.Abs(diffX) == Math.Abs(diffY)) || diffX == 0 || diffY == 0) || (diffX != 0 && diffY == 0) || (diffY != 0 && diffX == 0)) { if( !isPathBlocked(true, false, currentpos, new PiecePosition(currentpos.row+diffY,currentpos.column+diffX) return true; } break; case '6': //King if (diffX + diffY <= 2 && diffX < 2 && diffY < 2) { return true; } break; default: break; } return false; }