いくつかの文字で満たされた配列を取得しました。以下の例を参照してください。 まず、配列がシャッフルされていることを望みます。フィッシャー・イェーツ・シャッフルと呼ばれる最も有名なシャッフルを見つけました。
出力時に、たとえばF2がFやF' の隣にあってはなりません。もう一方も同じです。DはD2またはD' の近くにあってはなりません。
たとえば、R B2 UFLF D2 .... などのように出力されます。
ではない: R B2 B' LF D2 ...
ヘルプ、提案はありますか?最初の文字をチェックする必要があることは知ってcharAt()
いますが、私はその機能の専門家ではありません。
Javascript
function shuffle(sides) {
var elementsRemaining = sides.length, temp, randomIndex, last;
while (elementsRemaining > 1) {
randomIndex = Math.floor(Math.random() * elementsRemaining--);
if (randomIndex != elementsRemaining) {
temp = sides[elementsRemaining];
sides[elementsRemaining] = sides[randomIndex];
sides[randomIndex] = temp;
}
};
}
return sides;
}
var sides = ["F ", "R ", "U ", "L ", "D ", "F2 ", "R2 ", "U2 ", "L2 ", "D2 ", "F' ", "R' ", "U' ", "L' ", "D' "];
shuffle(sides);
$('#scramble').html(sides);