[英]In Javascript How do I prevent other functions from being invoked while under the setTimeout duration?
我正在做一個井字游戲。
我包含了一個 setTimeout 函數,以便在計算機移動之前,它看起來像是在“思考”,然后計算機實際在板上留下標記。
但是,我注意到,當計算機在“思考”時,我可以采取行動,從而破壞了讓對手先行動的目的,然后才能做出自己的行動(如果有道理的話)
例子:
(輪到我了)我用圓圈標記一個方框
(計算機轉向)計算機“思考”...
我如何防止這種情況? 這可能嗎?
setTimeout(compTurn, 1000)
在玩家輪流時的點擊偵聽器中,檢查是否允許玩家先玩。 當compTurn
被安排時切換一個布爾值,並在compTurn
完成時compTurn
其關閉:
// Start of game:
let playerTurn = true;
// ...
// Make computer take a turn:
playerTurn = false;
setTimeout(compTurn, 1000);
const compTurn = () => {
// ...
playerTurn = true;
};
board.addEventListener('click', (e) => {
if (!playerTurn) return;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.