Javascript 生成随机图像而不重复这些图像

Javascript 生成随机图像而不重复这些图像,javascript,html,Javascript,Html,我正在开发我的第一个Javascript游戏,但我被卡住了。。我想创建一个游戏,显示图像随机不重复他们。在图片下面,我想给它一个4-10之间的随机数。这是我的代码,但它不起作用,我完全不知道该怎么做 长话短说:用户必须按下开始键,然后出现一个带有随机数的随机图像。我只想把这些图片展示一次 任何帮助都将不胜感激- 这是我的密码: HTML: 试试这个 var generatedNumbers = [], giveNumber = 0; var check = function (){ do

我正在开发我的第一个Javascript游戏,但我被卡住了。。我想创建一个游戏,显示图像随机不重复他们。在图片下面,我想给它一个4-10之间的随机数。这是我的代码,但它不起作用,我完全不知道该怎么做

长话短说:用户必须按下开始键,然后出现一个带有随机数的随机图像。我只想把这些图片展示一次

任何帮助都将不胜感激-

这是我的密码:

HTML:

试试这个

var generatedNumbers = [],
giveNumber = 0;
var check = function (){
    do {
        giveNumber = generateNumber();
        if ( generatedNumbers.length == 6 ) { // or 10 what ever is the limit
            return false;
            // end the code here since all numbers are consumed
            // or reset the generatedNumbers array like generatedNumbers = []
        }
    } while (generatedNumbers.indexOf() > -1);

    generatedNumbers.push(giveNumber);
}

未测试

以下RandomGenerator类可用于生成随机图像和数字,无需重复。这是一个


欢迎来到SO!我想这回答了你的问题;在图像被删除后取消其设置。这样你就不会再犯了,他还是不工作。。它说:UncaughtTypeError:即使我删除了文档,也无法设置null new.js:55 window.onload的属性'innerHTML'。getElementById'submit'。innerHTML=此人应该得到一个+giveNumber+;linetry.value而不是.innerHTMLIt仍然存在相同的问题显示更新的代码,你能为它创建fiddle吗?你能在我的代码中找到问题吗?另一个答案也不起作用:代码正在运行,但我只在浏览器中看到media/4.jpg,如何在那里获得图像?您还可以像这样定义生成器var generator=new RandomeGenerator[…],20,24;这将给出20到24之间的随机数。此外,阵列中可以有任意数量的图像,但它们应大于或等于数字范围。
var generatedNumbers = [],
giveNumber = 0;
var check = function (){
    do {
        giveNumber = generateNumber();
        if ( generatedNumbers.length == 6 ) { // or 10 what ever is the limit
            return false;
            // end the code here since all numbers are consumed
            // or reset the generatedNumbers array like generatedNumbers = []
        }
    } while (generatedNumbers.indexOf() > -1);

    generatedNumbers.push(giveNumber);
}
var RandomGenerator = function (myImages, numbersFrom, numbersTo){

    this.numbersFrom = numbersFrom?numbersFrom:4;
    this.numbersTo = numbersTo?numbersTo:10;

    this.images = myImages;
    this.temp = myImages.slice(0);


    this.nextImage = function(){
        if(this.temp.length === 0 ) return null;
        var i = Math.floor(Math.random() * this.temp.length);
        var toReturn = this.temp[i];
        this.temp.splice(i,1);
        return toReturn;
    }.bind(this);

    this.reset = function(){
        this.temp = this.images.slice(0);
        this.initializeNumbers();
    }.bind(this);

    this.initializeNumbers = function(){
        console.log((this.numbersFrom - this.numbersTo)+1)
        this.numbers = new Array((this.numbersTo - this.numbersFrom )+1);
        var i=0;
        for(i = 0; i< this.numbers.length;i++){
          this.numbers[i]=this.numbersFrom+i;
        }
    }.bind(this);



    this.nextNumber = function(){
        if(this.numbers.length === 0 ) return null;
        var i = Math.floor(Math.random() * this.numbers.length);
        var toReturn = this.numbers[i];
        this.numbers.splice(i,1)
        return toReturn;
    }.bind(this);

    this.next = function(){
       return {
         "image" : this.nextImage(),
         "number" : this.nextNumber()
       };
    }.bind(this);

    //initialize the randomNumbers Array.
    this.initializeNumbers();
}