如何随机化一个通知变量的数字

时间:2018-05-16 20:35:26

标签: javascript math random

我有一个游戏,其中一个数组中的一个对象随机变得不可见。它是一个随机数生成器,用于指示从数组中取出哪个对象。玩家猜测消失了并获胜。

我想拥有它,按一下按钮,数字会再次随机化。

我尝试在函数中执行此操作,并且能够成功生成随机数,但其他变量无法访问该随机数。

<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的新手,所以我知道这可能是一个非常简单的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以成功生成新的随机数。初始icons数组和其他变量不需要访问此新变量。相反,此函数需要能够将新对象设置为不可见。

解决此问题的一种方法可能是更改showBack函数以获取参数,例如:

function showBack(idArg)
    {
    document.getElementById(idArg).style.visibility = "hidden";
    }

然后,您的新随机数生成函数可以使用新生成的随机数调用showBack

相关问题