Javascript 试图改善忍者,牛仔,熊游戏的逻辑,但得到意想不到的标识符
当我运行这个程序时,我在Chrome中获得了Javascript 试图改善忍者,牛仔,熊游戏的逻辑,但得到意想不到的标识符,javascript,Javascript,当我运行这个程序时,我在Chrome中获得了意外的标识符(还没有尝试其他的)。它与生成计算机的选择有关,我猜的是我试图创建的变量。有没有关于如何解决这个问题的建议?还是以更好的方式解决逻辑问题?我希望逻辑是: 第一次投掷:更可能是牛仔(中间道路-类似于纸张) 根据用户选择进行以下抛出。最初,我计划对用户以前的一组选择进行检查,但我远远没有能力编写此代码。因此,我选择只在最后一次投掷的基础上进行 下面是代码中不起作用的部分(希望粘贴整个内容,但格式设置令人头痛,而且很长)var previou
意外的标识符
(还没有尝试其他的)。它与生成计算机的选择有关,我猜的是我试图创建的变量。有没有关于如何解决这个问题的建议?还是以更好的方式解决逻辑问题?我希望逻辑是:
- 第一次投掷:更可能是牛仔(中间道路-类似于纸张)
- 根据用户选择进行以下抛出。最初,我计划对用户以前的一组选择进行检查,但我远远没有能力编写此代码。因此,我选择只在最后一次投掷的基础上进行
var newComputerChoice = function () {
if (previoususerChoices < array.length) {
computerChoice = Math.random();
//Change randomly generated number to ninja, cowboy, bear
if (computerChoice < .25) {
computerChoice = "ninja";
} else if (computerChoice < .75) {
computerChoice = "cowboy";
} else {
computerChoice = "bear";
};
} else {
var previoususerChoice = previoususerChoices.slice(Math.max(arr.length -1,0));
console.log(prevoususerChoice);
if previoususerChoice === "ninja" {
computerChoice = Math.random();
if (computerChoice < .50) {
computerChoice = "cowboy";
} else if (computerChoice < .75) {
computerChoice = "bear";
} else {
computerChoice = "ninja";
}
} else if previoususerChoice === "bear" {
if (computerChoice < .50) {
computerChoice = "ninja";
} else if (computerChoice < .75) {
computerChoice = "cowboy";
} else {
computerChoice = "bear";
}
} else {
if (computerChoice < .50) {
computerChoice = "bear";
} else if (computerChoice < .75) {
computerChoice = "cowboy";
} else {
computerChoice = "ninja";
}
}
}
}
console.log('pc choice: ', computerChoice);
}
当我试图将用户的选择放入数组(之前创建的数组)时,控制台告诉我,previoususerChoices.push
不是一个函数。我想这是真的,但我不知道有什么其他方法可以将值推入数组,所以我猜真正的罪魁祸首是其他东西
Fiddle:提示:Chrome控制台中错误消息行的右端有一个链接。该链接包括发生错误的行号。如果没有帮助,单击链接,Chrome会显示准确的错误行。或者更好的是,使用Firefox(带Firebug)来调试代码,它有更容易理解的错误消息。但是,我知道在将用户的选择推入数组时会出现一个新错误:previoususerChoices.push(userChoice);。根据控制台,.push不是一个函数(我想是真的),但它应该可以工作。到底
previoususerChoices
应该做什么?这一行肯定不能像你想的那样工作。应该检查数组是否包含一个数字。因为我创建了一个空数组,所以第一次传递应该返回true,并运行条件语句。在接下来的过程中,它应该跳过这一步。最后,我选择了退出阵列解决方案。现在,我只是使用一个变量检查最后一个用户选择。它解决了问题,但使我无法添加更高级的逻辑。
previoususerChoices.push(userChoice);