在文字游戏中使用数组

using an arrays in word game

本文关键字:数组 文字游戏      更新时间:2023-09-26

我正在创建一个文字游戏,用户可以将字母块拖动到占位符中,并评估它,看看他们是否做出了正确的单词。我需要打乱字母贴图,这样他们就不会拼出这个单词了。

目前我把字母瓦片在正确的顺序,然后添加一些字母。然后我想打乱字母瓦片。当我放置字母和额外的字母时,我将x位置推入数组。

是否有一种方法可以让我循环遍历数组并定位字母瓦片,使它们不重叠?Math.floor(Math.random)通常会产生重复的字母,因此字母瓦片被放置在另一个的顶部,如下图所示。


var arr = [0,30,60,90];
for(i=0;i<arr.length;i++){
 var num = Math.floor(Math.random()*arr.length);
 var bmp = new createjs.Bitmap("image");
 stage.addChild(bmp);
 bmp.x = arr[num];
stage.update();
}

是否有一种方法,只使用数组中的每个值一次,但每次选择一个随机的位置?

考虑制作一个平铺字母对象。

在这个对象内跟踪它的位置。然后添加碰撞检查,并跟踪所有物体的位置。

还考虑数组的shuffle方法。

帮助链接:

    JS碰撞检测<
  • JS对象/gh>

听起来您只是想打乱数组。

一种简单的方法是在arr上进行Knuth洗牌:

var arr = [0,30,60,90];
for(var i=0;i<arr.length;i++){
 var num = Math.floor(Math.random()*i);
 var x = arr[i];
 arr[i] = arr[num];
 arr[num] = x;
}
for(var i=0;i<arr.length;i++) {
 var bmp = new createjs.Bitmap("image");
 stage.addChild(bmp);
 bmp.x = arr[i];
 stage.update();
}