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