Вы можете сделать что-то вроде следующего:
$colors = array('111', '222');
$i = 0;
while (...) {
echo '<li style="background: #' . $colors[$i % count($colors)] . '"></li>';
$i++;
}
Для аккуратности вы также можете превратить петлю while
в цикл for
. Например:
$colors = array('111', '222');
for ($i = 0; ...; $i++) {
echo '<li style="background: #' . $colors[$i % count($colors)] . '"></li>';
}
Как сказал DrPhill, вы должны отслеживать, где вы были. Вы уже делаете это в функции mark
, но не используете эту информацию в функции checkValidMovement
.
Вы должны изменить эту функцию, чтобы она выглядела примерно так:
private static boolean checkValidMovement(int[][] maze, int stepX, int stepY , int movement, int[][] solution)
{
if(checkNotOutOfBounds(maze, stepX, stepY, movement)
&& checkNotCollideWithObstacle(maze, stepX, stepY, movement)
&& isNotYetVisited(maze, stepX, stepY, movement, solution))
{
return true;
}
return false;
}
где функция isNotYetVisited
возвращает false, если значение solution
на следующем шаге не равно 1
.
Надеюсь, это поможет.
Я думаю, что самый простой способ сделать это - просто запомнить координаты вашего последнего присутствия. Если нет никаких других правильных ходов, кроме возврата назад, вернитесь назад и отметьте место, на котором вы были, в качестве стены. Наконец вы доберетесь до [F].