隨機歌單背後的方法

在聽歌的時候不知道大家是從頭開始聽,還是讓播放器用隨機的方式呢?如果你用的是隨機的方式,有沒有注意到,播放器會每次都隨便選一曲,還是以隨機的方式先排好順序,再逐一播放呢?

如果是第一種方法的話,有可能會在短時間之間又重複聽到相同的曲子,但如果是第二種方法的話,那麼就一定要所有的歌曲都聽過一遍後,才會再重複喔。

為了示範隨機歌單的例子,我們還是需要一個清單,假設我們把它命名為list,然後建立一個用來產生有序資料的索引變數index,則產生一個有序數字清單的程式積木如下:

建立完成之後,只要程式一執行,就可以在舞台上看到如下所示的清單:

接著,我們用來打亂數字順序的方法是,設定兩個變數分別是x以及y,然後重複10次,每一次都隨機選擇1~10之間的數字做為x和y的內容,而x和y的目的就是要用來指出兩個要交換內容的項目之索引值。此外,為了要交換索引的內容項目,還需要一個暫存的變數,我們把它命名為temp,因此,除了清單list之外,這個程式還需要以下的變數:

打亂順序的程式積木如下:

在這個程式積木中要特別留意的是,x和y指的是索引,而temp變數中放的則是實際的項目內容。完成的程式積木如下所示:

此程式執行完畢之後,可以看到清單中的數字順序就被打亂了,而且清單中的數字不會有重複的情形發生喔。

學會了這項技能,同學們知道如何製作發牌程式了嗎?