我试图实现一个简单的 blckjack 游戏,问题是 timeOut 函数没有像我预期的那样工作。我写了一些调试信息来帮助你理解我的意思。用两个词我看到的是该函数被调用一次,然后由于某种原因它从函数中退出,程序继续执行自身,然后返回到 timeOut 函数......我想要的是暂停程序执行以等待用户选择是否停止申请新卡。先感谢您!
问问题
67 次
2 回答
0
waitForUserInput() 方法在哪里被调用?另外,为什么要使用超时来获取用户输入?为什么不简单地订阅鼠标点击事件呢?
于 2012-09-21T12:25:28.820 回答
0
setTimeout
不会停止执行脚本。这只是为了延迟执行。在你调用它之后 - 程序的执行将照常继续,但在指定的时间之后 - 作为第一个参数传递的函数将被执行。等待用户输入 - 查看 click/keyup/keydown 等事件。
您不应该在 JS 中执行以下操作。JS 总是单线程的,这样的循环只会冻结你的界面。在你的情况下,看起来你应该onclick
在卡片块上放置事件并放一个代码来满足你的需要。
while(true){
waitForUserInput();
if(requestCard){
userHand.hitMe();
var userHandCards = userHand.printHand().split(",");
displayCard(userHandCards[cardIndex]);
cardIndex++;
//console.log(">"+userHand.score());
if(userHand.score()>21){
break;
}
}else{
break
}
};
我想要的是暂停程序执行以等待用户选择是否请求新卡ot停止
您应该放置一些指定了 onclick 处理程序的按钮。只需根据单击的按钮运行您需要的代码。现在我看不到用户如何对你的程序说他的选择。如果这是一个键盘命令(“s”按下而不是停止,“n” - 下一张卡片) - 你可以尝试使用document.onkeyup
.
于 2012-09-21T12:27:26.697 回答