Во, видали, бля? Я в Дневнике программировал и алгоритмы разрабатывал! Тут ещё много чего можно делать!
читать дальшесоздаём список того, что можно наверх
вносим его в список ходов
создаём список возможных ходов
вносим их в список возможных ходов
Ищем снизу вверх, извлекаем первый несделанный ход, делаем его, помечаем, как сделанный
если это ход вверх, уменьшаем кол-во карт, исправляем foundation & ожидаемые карты
если это ход внутри,то ничего не делаем
запоминаем индекс хода
создаём список того, что можно наверх
вносим его в список ходов и помечаем индексом хода
создаём список возможных ходов
проверяем, нет ли там хода, обратного предыдущему
вносим и его тоже и помечаем индексом хода