我做了一个随机图像显示作为实验室的一部分,我不能让第三个图像出现(scissors.png)。多数民众赞成以下我的javascript ..帮助将非常感谢!
var total = 0;
function Images(){
var img1 = document.getElementById('img1');
var x = Math.floor(Math.random()*2)+1;
/* Player one */
if (x ==1)
img1.src = 'rock.png';
else if (x==2)
img1.src = 'paper.png';
else if (x==3)
img1.src = 'scissors.png';
}
答案 0 :(得分:3)
我作为实验室的一部分进行随机图像显示,但我无法显示第三张图像(scissors.png)。
那是因为你将你的随机数乘以2,然后对其进行拼接,这样你就可以得到0-2(含)的范围;这不是一个问题(给定从零开始的数组)但是你的if
期待一个基于数组的索引。
顺便说一下,我建议:
var images = ['rock', 'paper', 'scissors'],
rand = Math.floor(Math.random() * images.length);
return images[rand] + '.png';
导致这样的实现:
function getImage() {
var images = ['rock', 'paper', 'scissors'],
rand = Math.floor(Math.random() * images.length);
return images[rand] + '.png';
}
document.querySelector('button').addEventListener('click', function() {
console.log(getImage());
});

<button>Get an image</button>
&#13;
答案 1 :(得分:2)
试试这个:
var x = Math.floor(Math.random()*3)+1;
我还建议您使用:if (x === 1)
。
答案 2 :(得分:0)
function Images(){
var rand = Math.floor(Math.random()*3), // pick a random number: 0, 1 or 2
results = [rock, paper, scissors]; // Array of names, ordered.
// pick the right index from the array, so if the random number was '1',
// so the value at that index is used, which is "paper".
document.getElementById('img1').src = results[rand] + '.png';
}
答案 3 :(得分:0)
只需将乘数更改为3 甚至变量,等于可能性结果的数量。
Math.random
返回0 <= r < 1
然后相乘,我们可以得到0 <= r*n < n
个浮点数
Math.floor
获取整数0 <= k < n
或等于0 <= k <= n-1
如果您想获得[1, n]
,则应该为此序列添加1
但[0, n-1]
最适合长度为n
的数组索引。
这里的实施示例:
function action(images){
document.getElementById('img1').src =
images[Math.floor(Math.random()*images.length)];
}
action([
'rock.png',
'scissors.png',
'paper.png',
'lizard.gif',
'Spok.jpg'
]);
答案 4 :(得分:0)
Javascript Math.random()返回范围[0,1]之间的浮点值 - 意味着包括0但最多1除外1.
因此,最大值为0.99 * 2 = 1.98并且递增1为2.98。楼层值为2.
最简单的解决方案就是将其乘以3.
答案 5 :(得分:0)
Math.random() ∈ [0,1)
⇒ Math.random() * 2 ∈ [0,2)
⇒ Math.floor(Math.random()*2) ∈ [0,1] ∩ ℤ = {0,1}
⇒ Math.floor(Math.random()*2) + 1 ∈ {1,2}
如果你想要一组{1,2,3}
,你应该乘以3:
Math.random() ∈ [0,1)
⇒ Math.random() * 3 ∈ [0,3)
⇒ Math.floor(Math.random()*3) ∈ [0,2] ∩ ℤ = {0,1,2}
⇒ Math.floor(Math.random()*3) + 1 ∈ {1,2,3}