private boolean RunAwayFromPredator() {
		// �������� �������
		int speed = 3;
		// ��������� ���������.
		int DangerDistance = 100;

		DangerDistance = DangerDistance * DangerDistance;
		int min = DangerDistance + 1;
		int currentDistance;
		Leo currentLeo;

		// ������� �� �������.
		if (!this.isAlive) {
			return false;
		}
		// ���� �� �������
		if (this.isChild) {
			return false;
		}

		// ���������� �� ���������� �������
		for (Iterator<Leo> current = Information.getLinkedListOfLeos()
				.iterator(); current.hasNext();) {
			currentLeo = current.next();
			currentDistance = (currentLeo.getXPosition() - this.xPosition)
					* (currentLeo.getXPosition() - this.xPosition)
					+ (currentLeo.getYPosition() - this.yPosition)
					* (currentLeo.getYPosition() - this.yPosition);
			if (currentDistance < min) {
				min = currentDistance;
			}
		}

		// ���� ������� ������, ����� ���� ������� ������.
		if (min > DangerDistance) {
			return false;
		}

		// ���� ������� ������, ������, ���� ������.

		// �������� ����������� �� 8 ������������. Speed - �������� �������
		int speed45 = (int) Math.floor(((double) speed) / 1.41);

		int[][] way = new int[8][2];

		way[0][0] = speed;
		way[0][1] = 0;

		way[1][0] = -speed;
		way[1][1] = 0;

		way[2][0] = 0;
		way[2][1] = speed;

		way[3][0] = 0;
		way[3][1] = -speed;

		way[4][0] = speed45;
		way[4][1] = speed45;

		way[5][0] = speed45;
		way[5][1] = -speed45;

		way[6][0] = -speed45;
		way[6][1] = speed45;

		way[7][0] = -speed45;
		way[7][1] = -speed45;

		int bestdir = 0;
		int max = -1;

		// ����� ������ ���� ���� ����� ������ �����
		for (int i = 0; i <= 7; i++) {
			min = 20000;
			for (Iterator<Leo> current = Information.getLinkedListOfLeos()
					.iterator(); current.hasNext();) {
				currentLeo = current.next();
				currentDistance = (currentLeo.getXPosition() - way[i][0] - this.xPosition)
						* (currentLeo.getXPosition() - way[i][0] - this.xPosition)
						+ (currentLeo.getYPosition() - way[i][1] - this.yPosition)
						* (currentLeo.getYPosition() - way[i][1] - this.yPosition);
				if (currentDistance < min) {
					min = currentDistance;
				}
			}
			if (min > max) {
				max = min;
				bestdir = i;
			}
		}

		// ����� ��� � ������
		this.setXPosition(this.xPosition + way[bestdir][0]);
		this.setYPosition(this.yPosition + way[bestdir][1]);
		return true;
	}