我目前正在做一个网络计时器,我有一些问题与我的加扰算法的算法。因为它是第一个版本,我只希望加扰器是随机移动,而不是随机状态,因为它太复杂了,使,它将在未来的更新。我有一个算法,基本上做一个随机移动数组,它从可能性中选择,然后检查是否两个相同的字母(或移动)不是紧挨着另一个。这一切都很好,但我不知道如何添加一些可以避免以下情况的东西:“D U D”。被另一个移动分开的两个相同移动是可以接受的,例如“D R D”,但不是“D U D”,因为它将等于“D2 U”,因此,是一个浪费的移动。
非Cuber的信息:
每一个字母都代表它的脸,当它被读到时,它会被移动。例如:“l U l”:“l”意味着顺时针旋转左脸一次,然后“U”意味着顺时针旋转上脸,最后“l”再次意味着旋转左脸一次。如果一个字母后面跟一个撇号,那么就意味着面要逆时针旋转。如果后面跟一个“2”,则表示要连续旋转两次脸部。L是左,R是右,F是前,B是后,D是下,U是上
代码如下:
js prettyprint-override"> function generate_scramble() {
var scramble_length = 20;
var scramble = new Array();
var possible_letters = new Array(" D", " U", " B", " F", " R", " L");
var possible_switches = new Array("", "2", "'");
var array_of_randoms = new Array();
for (var i = 0; i < scramble_length; i++) {
var random_letters = Math.floor(Math.random() * possible_letters.length);
var random_switches = Math.floor(Math.random() * possible_switches.length);
array_of_randoms.push(random_letters);
if (array_of_randoms[array_of_randoms.length - 1] == array_of_randoms[array_of_randoms.length - 2]) {
if (array_of_randoms[array_of_randoms.length - 1] < 5) {
array_of_randoms[array_of_randoms.length - 1]++;
} else {
array_of_randoms[array_of_randoms.length - 1]--;
}
}
random_letters = array_of_randoms[array_of_randoms.length - 1];
scramble.push(possible_letters[random_letters] + possible_switches[random_switches])
}
document.getElementById("scramble").innerHTML = "Scramble: " + scramble.join("");
}
generate_scramble();
<p id="scramble">
Scramble:
</p>
<button onclick="generate_scramble()">
New Scramble
</button>
const directions = [
["D", "U"],
["L","R"],
["F","B"]
];
const times = ["", "'", "2"];
const random = (array, exclude) => {
do {
var n = Math.floor( Math.random() * array.length );
} while(array[n] === exclude)
return array[n];
}
const scramble = new Array(20);
var direction;
for(var i = 0; i < scramble.length; i++){
direction = random(directions, direction);
scramble[i] = random(direction) + random(times);
}
你可以通过改变它移动的方向来减少很多错误的移动。所以D,U和D不会出现,因为D和U的方向相同。
本文向大家介绍JavaScript中用于生成随机数的Math.random()方法,包括了JavaScript中用于生成随机数的Math.random()方法的使用技巧和注意事项,需要的朋友参考一下 此方法返回0(含)和1(不包括)之间的随机数 语法 下面是参数的详细信息: NA 返回值: 返回0(含)和1(不包括)之间的随机数 例子: 这将产生以下结果:
我是一个业余程序员,在Pyplay非常新。这是我用Pyplay编写的程序,类似于我的世界。在过去的一个小时里,我一直在尝试设置一个代码,让我的玩家在按下X键时移动到随机瓦片。我已经耗尽了大部分如果不是所有的网站和搜索引擎寻找。我已经设法完成了一半的任务;当按下X键时,化身会移动到随机磁贴,但它会移出窗口/显示器。拜托,你能看看我的代码,看看我能做些什么来改进它吗?
本文向大家介绍JavaScript随机生成颜色的方法,包括了JavaScript随机生成颜色的方法的使用技巧和注意事项,需要的朋友参考一下 废话不多说了直接给大家贴js代码了,具体代码如下所述: 以上所述是小编给大家介绍的JavaScript随机生成颜色的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对呐喊教程网站的支持!
问题内容: java.util.Random的实例是线程安全的。但是,跨线程并发使用同一java.util.Random实例可能会引起争用并因此导致性能下降。考虑在多线程设计中改用ThreadLocalRandom。 什么样的争执因而表现不佳?有人可以在这里给我解释吗?我不知道在Random和ThreadLocalRandom中使用什么算法使它们与众不同。 问题答案: 这可能会有所帮助: http
我正在尝试创建一个具有以下签名的函数: 它应做到以下几点: 生成从0到1的随机数,但不包括1 在该范围内选取任何给定数字的概率不是均匀分布的 选择的数字接近目标值的可能性更大(目标值也是从0到1的值) 概率曲线看起来像钟形曲线,目标值的概率最高,其周围的值逐渐变小,但0到1范围内的所有值仍有机会被选中。 这个机会的权重可以用概率值来调整,其中0表示没有对随机性施加权重,1表示几乎所有选择的数字都将
本文向大家介绍javascript实现图片跟随鼠标移动效果的方法,包括了javascript实现图片跟随鼠标移动效果的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript实现图片跟随鼠标移动效果的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。