彩票竞猜程序计数器JavaScript



创建了一个彩票号码猜测程序,该程序取数字1-10,让用户猜测数字,总共3次,以赢得一个"奖品";。在程序的彩票部分,我可以没有问题,但无法让程序计算猜测次数并显示正确的奖金金额。

这是我的代码:

<script>
var randomNum1 = Math.floor((Math.random() * 9) + 1);
var randomNum2 = Math.floor((Math.random() * 9) + 1);
var randomNum3 = Math.floor((Math.random() * 9) + 1);
console.log(randomNum1);
console.log(randomNum2);
console.log(randomNum3);
console.log(x);
var firstNum = false;
var secondNum = false;
var thirdNum = false;
var x = 0;
var moneyWon = 0;
firstNum = parseInt(prompt("Guess the first number."));;
secondNum = parseInt(prompt("Guess the second number."));;
thirdNum = parseInt(prompt("Guess the third number."));;
if((firstNum == randomNum1) || (firstNum == randomNum2) || (firstNum == randomNum3))
{
firstNum == true;
}
if(firstNum == true)
{
moneyWon = 100;
x++;
}
else{
moneyWon = 0;
}
if((secondNum == randomNum2) || (secondNum == randomNum1) || (secondNum == randomNum3))
{
secondNum == true;
}
if(secondNum == true)
{
moneyWon = 200;
x++;
}
else{
moneyWon = 100;
}
if((thirdNum == randomNum2) || (thirdNum == randomNum1) || (thirdNum == randomNum3))
{
thirdNum == true;
}
if(thirdNum == true)
{
moneyWon = 500;
x++;
}
else{
moneyWon = 200;
}


alert("The computer's numbers are " + randomNum1 + " " + randomNum2 + " " + randomNum3 +
"nYour guesses were " + firstNum + " " + secondNum + " " + thirdNum +
"nYou got " + console.log(x) + " right" +
"nYou've won $" + moneyWon);

</script>

我注意到的第一件事:

You got " + console.log(x) + " right" +

这里不需要console.log(),只需要x

第二件事,你不想在if中每次都设置moneyWon,而是像使用x一样设置moneyWon += amount

此外,在else中(表示猜测不正确(,您不想设置或添加金额(我建议完全删除这3个else(:

else{ moneyWon = 0; }

还有一件小事——给房产起有意义的名字var firstNum = false应该更像(is)firstNumberGuessed(is表示这是一个布尔

我看到你在这方面走在了正确的轨道上,但很高兴能尽快学会不要对这件事懒惰

EDIT:你也可以放弃将true赋值给firstNum、secondNum、thirdNum,只需要这样:

if((firstNum == randomNum1) || (firstNum == randomNum2) || (firstNum == randomNum3))
{
moneyWon += 100;
x++;
}

好吧,我不需要告诉你错误是什么以及导致错误的原因,因为我的朋友Dejan已经在他的回答中包含了这些错误。在我的回答中,我试图实现他的回答以及一些有用的javascript方法,这些方法可能会让你的工作变得更容易、更快。

首先,数组是你的朋友。我为用户输入和随机数制作了数组,并使用for循环填充它们。

接下来,当我们使用数组时,我们可以使用includes()方法来查找随机数中的值。它减少了你的if else条件。

接下来,我将使用字符串插值来获得输出消息。

let randoms = [];
let nums = [];
let numbers = ["first", "second", "third"];
let winPrize = [100, 200, 500];
let losePrize = [0, 100, 200];
for(let i=0; i<3; i++){
randoms.push(Math.floor((Math.random() * 9) + 1));
nums.push(parseInt(prompt(`Guess the ${numbers[i]} number.`)));
}
let x = 0;
let moneyWon = 0;
for(let i=0; i<3; i++){
if(randoms.includes(nums[i])){
x++;
moneyWon+=winPrize[i];
}else{
moneyWon+=losePrize[i];
}
}
alert(`The computer's numbers are ${randoms[0]}, ${randoms[1]} and ${randoms[2]}. nYour guesses were ${nums[0]}, ${nums[1]} and ${nums[2]}. nYou got ${x} right. nYou've won $${moneyWon}`);

我相信,如果我们遵循这样的做法,我们的代码将保持简短,并且易于阅读和维护。

最新更新