Метод canUserMove() в конце программы. Его суть: 1) первый for проверяет элементы на ноль 2) второй for проверяет рядом стоящие элементы на равенство 3) после этих проверок вертим массив по часовой стрелке и уходим в рекурсию по методу canUserMove() для проверки по пунктам 1 и 2 которые выше. 4) после четырех прокруток счетчик count == 0 и мы выходим с метода 5) кстати если в каком-то из for из 1 и 2 пункта буль принимает true в рекурсию не уходим и сразу возвращаем true И еще, проверял я так: 1) через for заполнял массив нулями вывод true 2) через for заполнял массив двойками вывод true 3) через for заполнял массив разными числами вывод false