public static boolean CanTheyCastling(Collection<Pawn> tmp, Pawn p2, Pawn p1, BoardGame elem) { // tmp is her the current BoardGame but don't care
			if (!_canCastling(tmp, p2,p1,elem)) // Start Position and Good Pawns/Color
				return false;
			if (elem.getPositionFirstObstacleColumnRange(tmp, p2, p1.GetPosition()) != null)
				return false;
			if (Rules.CheckKing.isCheckKing(tmp, elem, p1.GetColor()))
				return false;
			Position enp = new Position(p2.GetPosition());
			enp.column = ((p1.GetClass() == ePawns.ROOK ? p1.GetPosition().column : p2.GetPosition().column) == 'a' ? 'c' : 'g');
			if (!(canDoMove_Castling(tmp, (p1.GetClass() == ePawns.KING ? p1 : p2), enp, elem)))
				return false;
			if (!(canMoveTheir_Castling(tmp, (p1.GetClass() == ePawns.KING ? p1 : p2), enp, elem)))
				return false;
			return true;
		}