Node.js を使用してスクリプトを実行し、コマンド ラインでプレーンな JavaScript を学習しています。
「ハノイの塔」の単純な 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 ループがユーザー入力要求を停止することなく繰り返し無限に循環するため、どちらも「ブロック」していないと想定しています。
何かアドバイス?
ありがとう。