我有一个游戏,其中一个数组中的一个对象随机变得不可见。它是一个随机数生成器,用于指示从数组中取出哪个对象。玩家猜测消失了并获胜。
我想拥有它,按一下按钮,数字会再次随机化。
我尝试在函数中执行此操作,并且能够成功生成随机数,但其他变量无法访问该随机数。
<script>
function sortByOrder (x, y)
{
x = Math.random();
if (x <0.5) return 1; else return -1;
if (x.order < y.order) return -9;
if (x.order == y.order) return 0;
if (x.order > y.order) return 9;
}
var icons = new Array ();
icons [0] = {img: "Animals/Ape.png", name: "APE", id: "p1"};
icons [1] = {img: "Animals/Bat.png", name: "BAT", id: "p2"};
icons [2] = {img: "Animals/Cat.png", name: "CAT", id: "p3"};
icons [3] = {img: "Animals/Emu.png", name: "EMU", id: "p4"};
icons [4] = {img: "Animals/Yak.png", name: "YAK", id: "p5"};
icons [5] = {img: "Animals/Dog.png", name: "DOG", id: "p6"};
icons [6] = {img: "Animals/Cow.png", name: "COW", id: "p7"};
icons [7] = {img: "Animals/Rat.png", name: "RAT", id: "p8"};
icons [8] = {img: "Animals/Pig.png", name: "PIG", id: "p9"};
var rnd = Math.floor(Math.random() * 9);
var target = icons[rnd].name;
var id = icons[rnd].id;
icons.sort(sortByOrder);
function randomize()
{
rnd = Math.floor(Math.random() * 9);
}
function showBack()
{
document.getElementById(id).style.visibility = "hidden";
}
</script>
我是Javascript的新手,所以我知道这可能是一个非常简单的解决方案。
答案 0 :(得分:0)
您可以成功生成新的随机数。初始icons
数组和其他变量不需要访问此新变量。相反,此函数需要能够将新对象设置为不可见。
解决此问题的一种方法可能是更改showBack
函数以获取参数,例如:
function showBack(idArg)
{
document.getElementById(idArg).style.visibility = "hidden";
}
然后,您的新随机数生成函数可以使用新生成的随机数调用showBack
。