我正在命令行上学习纯 JavaScript,使用 Node.js 来执行我的脚本。
我一直在尝试重写'Towers of Hanoi'的简单 Ruby 实现。
到目前为止,这是我的一些代码:
function Tower() {
this.rods = [[8, 7, 6, 5, 4, 3, 2, 1], [], []];
this.gameOver = false;
}
Tower.prototype.showTowers = function () {
var i;
for (i = 0; i < 3; i++) {
console.log(i + 1 + ': ' + this.rods[i]);
}
};
Tower.prototype.moveRod = function (from, to) {
...
}
我正在努力编写播放循环。我认为问题在于我不熟悉异步函数。我的播放循环伪代码类似于:
until game.win? {
game.show_towers
until valid_move?(move) {
move = request_move
}
make_move(move)
}
game.congrats
我试过prompt和readline。我假设两者都不是“阻塞”,因为在这两种情况下,我的 while 循环都会无限循环地重复用户输入请求而不会停止。
有什么建议吗?
谢谢。