リストの中身をランダムに並べ替える方法を紹介します。
完成動作
https://scratch.mit.edu/projects/511010131

完成コード
適当なスプライトに以下のコードを作成する。
※あらかじめ、「ランダム並び替え」というリストと、「並び替える番号」「並び替える中身」という変数を作成しておく。
「ランダム並び替え」リストには適当な文字を追加しておく。

解説
・「ランダム並び替え」というリストと、「並び替える番号」「並び替える中身」という変数を作成しておく。


・「ランダム並び替え」リストに任意の文字を追加する。

・変数は画面には表示する必要はないので、隠しておく。

・ランダムに並び替える回数はとりあえず100回にしておいた。
※1回とか2回では一部しか並べ替えてくれないので、ある程度の回数繰り返す必要がある。

・リストの中の何番目を並び替えるかを変数に入れておく。
何番目かはランダムにするために乱数を使う。乱数の最大の数は”ランダム並び替え”リストの長さ。

・並び替える番号の中身の文字を変数に入れておく。
※次のブロックで、並び替える番号を削除するので、事前に中身を変数に入れて保護しておく。

・並び替える番号を削除する

・削除した並び替える番号の中身を、乱数を使ってリストの適当な場所に挿入する。
※乱数の最大は”ランダム並び替えの長さ+1“とした。+1にすることによって、リストの末尾にも挿入されるようになる。

コメント