@Override
	public Figur waehleFigur(String[][] spielfeld) {
		Figur[] figurenArray = getFigurenArray();
		int[][] besterZugJederFigur = new int[figurenArray.length][2];
		for (int i = 0; i < figurenArray.length; i++) {
			ArrayList<int[]> moeglicheZuege = new ArrayList<int[]>();
			moeglicheZuege.addAll(figurenArray[i].findeZuege(spielfeld));
			besterZugJederFigur[i] = besterZug(figurenArray[i].getPosition(),
					moeglicheZuege, spielfeld);
		}

		double[] abstandZuege = new double[figurenArray.length];
		int besteFigur = findeErsteFigur(figurenArray);
		int zweitBesteFigur = besteFigur;

		for (int i = besteFigur; i < besterZugJederFigur.length; i++) {
			abstandZuege[i] = berechneAbstand(besterZugJederFigur[i],
					getAktuelleZielPosition(spielfeld));
			boolean figurIstImZiel = false;
			int[] aktuellePos = figurenArray[i].getPosition();

			for (int[] zielPosition : getZielPsotionen()) {

				if (aktuellePos[0] == zielPosition[0]
						&& aktuellePos[1] == zielPosition[1]) {
					figurIstImZiel = true;
				}
			}

			if (abstandZuege[i] < abstandZuege[besteFigur] && !figurIstImZiel) {
				zweitBesteFigur = besteFigur;
				besteFigur = i;
			}
		}
		if (letzteFigur == figurenArray[besteFigur]) {
			besteFigur = zweitBesteFigur;
		}
		this.letzteFigur = figurenArray[besteFigur];
		return this.letzteFigur;
	}