Как добавить в div результаты каждого шага рекурсивной функции в JS - PullRequest
0 голосов
/ 21 сентября 2018

Может ли кто-нибудь помочь понять следующее?Я использую алгоритм «Башня в Ханое» для программирования движений крана.Так что есть 3 слота (а, б, в).И переместите груз из slot_a в slot_c, используя slot_b как временный.Мне нужно отобразить, что происходит в каждом слоте.(DIV с ID = "port_a" и т. Д. Для этого я использую innerHTML.

Код:

const moveCranes = function(plate, slot_a, slot_b, slot_c) {
setTimeout(function() {
    if (plate > 0) {
        moveCranes(plate - 1, slot_a, slot_c, slot_b);
        port_a.innerHTML = "Moving plate " + plate + " from " + slot_a + " to " + slot_c + "..." + "</br>";
        port_b.innerHTML = "Moving plate " + plate + " from " + slot_a + " to " + slot_c + "..." + "</br>";
        port_c.innerHTML = "Moving plate " + plate + " from " + slot_a + " to " + slot_c + "..." + "</br>";
        moveCranes(plate - 1, slot_b, slot_a, slot_c);
    }
}, 2000);
};
    moveCranes(input.value,"slot_a","slot_b","slot_c");

Но этот код отображает одинаковый результат для каждого шага в каждом слоте. Результат долженне то же самое, потому что, например, когда мы перемещаем тарелку из slot_a в slot_c, у нас нет никаких движений в slot_b.

Пожалуйста, дайте мне подсказки!

...