gpt4 book ai didi

Javascript战舰Math.random - 始终生成相同的数字

转载 作者:行者123 更新时间:2023-12-03 00:38:22 26 4
gpt4 key购买 nike

我目前正在阅读“Head First:Javascript”,其中有一个创建“战舰”的任务。我按照每一步操作,我的代码看起来与书中的代码一模一样,但我的代码总是生成相同的数字,每次都应该加 1。这意味着,如果它生成数字 2,则后面的 2 个数字应该是 3 和 4(3 个位置 = 1 艘船)。我希望它在 0 到 4 之间(因为如果是 4,则 5 和 6 也在栅格上。)用户应该选择 0 到 6 之间的数字。

随机数始终为:0、1 和 1.. 代码如下:

var randomLoc = Math.floor(Math.random()) * 5;

var location1 = randomLoc;
var location2 = location1++;
var location3 = location2++;

var guess;

var hits = 0;

var guesses = 0;


var isSunk = false;

alert(location1 + " " + location2 + " " + location3); //To show the numbers for debugging.

while (isSunk == false) {

guess = prompt("Anlegen, Zielen Feuer! (Geben Sie eine Zahl zwischen 0 und 6 ein) :");

if (guess < 0 || guess > 6) {
alert("Diese Zahl (sofern es eine war) liegt nicht auf dem Raster")
} else {
guesses += 1;

if (guess == location1 || guess == location2 || guess == location3) {
alert("Treffer!")
hits += 1;

if (hits == 3) {
isSunk = true;

alert("Schiff versenkt!");
}
} else {
alert("Daneben!");
}
}

}
var stats = "Sie haben " + guesses + " Versuche gebraucht, um das Schiff zu versenken. " +

"Das entspricht einer Genauigkeit von " + (3 / guesses) * 100 + "%";
alert(stats);

最佳答案

因为 Math.random() 生成一个 0 到 1 之间的数字。当您 Math.floor(Math.random()) 时,您总是得到 0 作为输出。你真正想要的是Math.floor(Math.random()*5)

Math.random()*5 会将输出范围缩放到 0 到 5。因此,下限函数实际上会按预期执行, chop 0 到 4(包括 0 到 4)之后的小数。

将来的一种测试方法是通过 F12 在浏览器中使用控制台。您可以一点一点地测试您的代码,看看哪里出了问题,调试您的脚本。

关于Javascript战舰Math.random - 始终生成相同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com