私のプロジェクトは継続しています。これは、codepenでtic tac toeゲームを作ることです。私が抱えている問題は以下の機能です。 誰かが勝ったかどうかを計算することを想定していますが、1つの例外を除いてそうなります。今すぐAIは次の利用可能な場所にキャラクターを置くだけで、私のキャラクターを真っ直ぐなライン(中間ラインなど)に置いて、次のターンにコンピューターが勝つはずですコンピュータが勝ったことを返します。ループを終了することはできませんes6
私はゲームで私自身のアプローチを取っているので、これは理解しにくいかもしれません。勝利ブロックに達したことを示すコンソールログを作成しましたが、ループが実行されていると思います。これがes6やブロックスコープと関係があるのであれば私はしませんが、この場合には正しいアクションを得ることができません。私が試した他のほとんどのケースは正しく動作するようです。ここで
は、完全なコンテキストのcodepenへのリンクは次のとおりです。
編集:私は誤ってプロジェクトから機能をカットし、ペンはので、私はそれを固定動作を停止しました。それは別の関数を呼び出す前に関数が終了していない可能性がありますか?私が尋ねる理由は、コンピュータが勝った場合、小切手への呼び出しが真実に戻ってはならないからです。それが私が混乱している理由です。
hasWon(){
let scores = this.scoring();
allScores: {
for(let i = 0; i < scores.length; i++){
let win = $('.end');
let currentScore = scores[i];
console.log("The scores here: " + scores);
console.log("the current score: " + currentScore);
console.log("the player score: " + (this.player * 3));
console.log("the truth: " + (currentScore === (this.player * 3)));
if(currentScore === (this.player * 3)){
console.log("we got in here but this line isn't counting");
win.html("<h4>Player won the Game!</h4>");
this.hasWonEnd();
break allScores;
} else if (currentScore === (this.computer * 3)) {
console.log("we are displaying this line.....");
win.html("<h4>Computer won the Game!</h4>");
this.hasWonEnd();
break allScores;
} else if (this.emptyIndices().length === 0 && i === (scores.length - 1)){
win.html("<h4>It's a draw!</h4>");
this.hasWonEnd();
break allScores;
}
}
}
}