@Override
	public String solve(Cube cube) {
		boolean Break = false;
		String algo = "";
		for (int j = 0; j < PLL.length; j++) {
			String alg = PLL[j];
			for (int i = 0; i < 4; i++) {
				Cube cubeClone = cube.clone();
				cubeClone.doAlgorithm(alg);
				if (isAlmostSolved(cubeClone)) {
					cube.doAlgorithm(alg);
					algo = alg;
					Break = true;
					break;
				}
				alg = Cube.rotateAlgorithm(alg);
			}
			if (Break) break;
		}
		for (int i = 0; !isSolved(cube) && i < 4; i++) {
			cube.turn(Turn.U);
			algo += ",U";
		}
		return algo;
	}