我一直致力于Connect 4机器人项目,为此我试图让this代码在我的电脑上运行node.js,以便它可以在Raspberry上运行Pi,传感器和一些按钮是唯一的输入。 不幸的是,我对Javascript不是很有经验,这就是我遇到一些问题的原因。 我评论了大多数与node.js不兼容的行,并且我设法使它工作了一轮。 但是,只要我打电话给"行为"功能不止一次:
Game.prototype.act = function(column /*e*/) {
// Human round
if (that.round == 0) that.place(column /*element.cellIndex*/);
// Computer round
if (that.round == 1) that.generateComputerDecision();
}
Game.prototype.place = function(column) {
// If not finished
if (that.board.score() != that.score && that.board.score() != -that.score && !that.board.isFull()) {
if (!that.board.place(column)) { //Place coin in seperate Board class
return alert("Invalid move!");
}
that.round = that.switchRound(that.round);
that.updateStatus();
}
}
事情开始变得怪异。例如,当我用" act(1)"测试它时,紧接着" act(2)",第二枚硬币出现在错误的列中。
我使用控制台日志进行了一些测试,看起来程序不按我想要的顺序运行。它似乎开始下一个"行为"函数调用在最后一个完成计算计算机移动之前。
我该如何解决这个问题?