我正在使用codecademy课程,而且我正在学习如何通过随机数字制作石头剪刀游戏。它说我做了一份好工作"但每当我试图让每个人正确地表现出他们各自的条件时,它就会变得混乱。
请留下评论,指出错误以及将来避免错误的提示。
条件 - 0到.33 =摇滚 -.34到.66 =纸 -.67到1 =剪刀
JS代码
var userChoice = prompt("Rock, Paper, or Scissors?");
var computerChoice = Math.random();
console.log(computerChoice);
if (computerChoice <= 0.33) {
console.log("Rock");
}
else if (0.34 < computerChoice < 0.66) {
console.log("Paper");
}
else {
console.log("Scissors");
}
答案 0 :(得分:1)
问题就在于这一行:
else if (0.34 < computerChoice < 0.66) {
试试这个:
else if (0.35 < computerChoice && computerChoice < 0.67) {
答案 1 :(得分:0)
最好阅读一本编程书,或阅读一些关于循环的在线教程 无论如何使用下面的代码它将解决你的问题
var userChoice = prompt("Rock, Paper, or Scissors?");
var computerChoice = Math.random();
console.log(computerChoice);
if (computerChoice <= 0.33)
{
console.log("Rock");
}
else if(computerChoice>=0.34&&computerChoice<=0.66)
{
console.log("Paper");
}
else if(computerChoice>=0.67&&computerChoice<=1)
{
console.log("Scissors");
}
else
{
console.log("Invalid input");
}
答案 2 :(得分:0)
每个人似乎犯的错误是你可以拥有0.331并且评估为“剪刀”。逻辑更合理如下:
var result = (computerChoice >= 0.67 ? "Scissors" : (computerChoice >= 0.34 ? "Paper" : "Rock"));
console.log(result);
答案 3 :(得分:0)
我讨厌成为第十个回答者,但所有给出的答案都很糟糕。你理解
else if (0.34 < computerChoice < 0.66) {
语法不好,对吗?好吧,所以让我们也解决偏见问题:0.33不到三分之一,0.33和0.34之间的所有数字都是默认剪刀。如果你想要均匀分布,最简单的方法是使用早期退出来创建一个函数:
function computerChoice() {
var v = Math.random();
if (v < (1.0 / 3.0)) return "rock";
if (v < (2.0 / 3.0)) return "paper";
return "scissors";
}
这与双精度浮点允许的一样好,这对于大多数用途来说已经足够好了。
答案 4 :(得分:-1)
if(computerChoice>=0&&computerChoice<=0.33)
{
console.log("Rock");
}
else if(computerChoice>=0.34&&computerChoice<=0.66)
{
console.log("Paper");
}
else if(computerChoice>=0.67&&computerChoice<=1)
{
console.log("Scissors");
}
HI,我假设您验证的随机数范围为0到1。