我在電報機器人中創建了一個遊戲,現在我已經達到了「玩」狀態。最困難的部分是每回合超時算法(對我來說)。遊戲的超時邏輯
這裏的故障:
賽首發..得到4名球員
遊戲的目標是要回答的問題。問題是: 提及動物的名字。
順序回答是:玩家C - >玩家B - >播放器d - >播放器 A.
每個玩家有最大5秒至回答(可以是更小)。
好吧,現在,遊戲將在3 .. 2 .. 1 ..開始!
玩家C的答案:狗(1秒)
玩家B的答案:貓(1秒)
播放d答案:鹿(1秒)
播放器答案:鳥(2秒)
當它回到播放呃C,它會是5秒,而我的邏輯是 來檢查oldTurnId(Player C)=== currentTurnId(播放器 C)。在這種情況下,玩家C會收到通知時間到了,他將被送出,但是玩家C將會第二次回答。
I have this columns on my table : previousTurnId, currentTurnId, nextTurnId
。
但我找不到解決這個問題的方向。
僅供參考,我使用node.js來創建這個遊戲,主要部分是我使用setTimeOut很多這個超時每轉的邏輯。
任何人有更好的主意來解決這個問題?
非常感謝很多傢伙, 所有幫助將不勝感激。
謝謝
AHHHH,讓人的想法,我不知道那件事。無論如何,感謝兄弟。稍後再嘗試,並會更新結果。謝謝!! – Webster
你的意思是在超時後傳遞一個參數給'setTimeout'調用的函數嗎?你可以只包住'setTimeout'在功能'函數startPlayerTimeout(播放器){返回的setTimeout(函數(){removePlayer(播放器);},5000); }' – cejast
還好,但如果我把它包起來,我不能使用從外部權clearTimeout功能? – Webster