1

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

promptreadlineを試しました。どちらの場合も、while ループがユーザー入力要求を停止することなく繰り返し無限に循環するため、どちらも「ブロック」していないと想定しています。

何かアドバイス?

ありがとう。

4

0 に答える 0