我正在尝试建造一个摇滚,纸张,剪刀游戏。这是我的代码:
var options = ["r", "p", "s"];
document.onkeyup = function() {
var userGuess = String.fromCharCode(event.keycode).toLowerCase();
console.log(userGuess);
var computerGuess = options[Math.floor(Math.random() * options.length)];
console.log(computerGuess);
if (userGuess == "r" || userGuess == "p" || userGuess == "s") {
alert("Chosen Correctly - Good job!");
} else {
alert("Please choose r, p, or s");
}
}
当我按r,p或s时,我的警报没有说“正确选择 - 干得好!”;相反,警报是请选择“r”,“p”或“s”。 HHHmmmm,没有这个工作,我无法开始将用户猜测与计算机猜测进行比较。是否有任何新鲜的眼睛会帮助我?拜托,谢谢你。
答案 0 :(得分:1)
你错过了keyCode上的资本C.
var userGuess = String.fromCharCode(event.keyCode).toLowerCase();
答案 1 :(得分:1)
event.keycode
应为event.keyCode
,注意大写字母C.此外,最好只使用event.key
,因为它已经是字符串。
你在开发什么浏览器?通过按F12可以访问开发人员工具,您可以在程序运行时设置断点来访问变量。
答案 2 :(得分:1)
正如其他人所说,你错过了首都" C"在keyCode
。
但它也让我觉得你不能在任何地方定义event
。使用全局event
对象是一个坏主意,并且(谢天谢地)并非所有浏览器都支持。您可能还想使用event.which
而非event.keyCode
,这对所有事件都不一致。
事件处理程序的开头应该更像这样:
document.onkeyup = function(event) {
var userGuess = String.fromCharCode(event.which).toLowerCase();
...
但您也可以使用控制台日志记录来查看正在发生的事情,例如:
document.onkeyup = function(event) {
console.log("event=", event);
var userGuess = String.fromCharCode(event.which).toLowerCase();
请注意,我没有说console.log("event=" + event);
+
会导致事件输出为[object Object]
;使用逗号(以及任何现代浏览器的开发者控制台,通常可通过 F12 访问),您将能够浏览对象的内容。
答案 3 :(得分:1)
两个变化:
event
,以便在本地提供。keyCode
是用intercaps编写的,(不是keycode
,因为你有); JavaScript区分大小写。良好的调试提示是console.dir()
您尝试检查的对象,它将显示正确(和可用)的属性和方法名称。
(但请注意,event
非常庞大,因此您需要进行大量筛选。)
var options = ["r", "p", "s"];
document.onkeyup = function(event) {
var userGuess = String.fromCharCode(event.keyCode).toLowerCase();
console.log(userGuess);
var computerGuess = options[Math.floor(Math.random() * options.length)];
console.log(computerGuess);
if (userGuess == "r" || userGuess == "p" || userGuess == "s") {
alert("Chosen Correctly - Good job!");
} else {
alert("Please choose r, p, or s");
}
}

答案 4 :(得分:0)
您希望event
作为事件处理程序的参数,而event.keyCode
而不是event.keycode
(w hich将是未定义的):
var options = ["r", "p", "s"];
document.onkeyup = function(event) {
var userGuess = String.fromCharCode(event.keyCode).toLowerCase();
console.log(userGuess);
var computerGuess = options[Math.floor(Math.random() * options.length)];
console.log(computerGuess);
if (userGuess == "r" || userGuess == "p" || userGuess == "s") {
alert("Chosen Correctly - Good job!");
} else {
alert("Please choose r, p, or s");
}
}

答案 5 :(得分:0)
只需将event.keycode
改为event.keyCode