これを学ぶよ
わざadv-4 で作ったランキング (記録順) を、スコアの高い順に並べ替えよう。リストから最大値を見つけて『並べ替え結果』リストに移していく『選択ソート』というならべかたを学ぶ。最大値検索パターンと、くりかえしの中にくりかえしを入れるやりかたというアルゴリズム思考の基礎を体験する。
つかうブロック
動画を見て、自分でも作ってみよう
やってみよう!1「並べ替え結果」リストを作って初期化しよう
adv-4 で作ったランキング (記録順) を、今度はスコアの高い順に並べ替えます。並べ替えた結果を入れる新しいリスト「並べ替え結果」を用意しましょう。 (1)「変数」の引き出しから「リストを作る」をクリックして『並べ替え結果』というリストを作ります (ランキングと同じスプライトに置きます)。 (2) 緑の旗を押し直しても並べ替え結果がリセットされるように、新しい『緑の旗が押されたとき』のスクリプトを 1 本追加して、『リストのすべてを削除する』で『並べ替え結果』を空にします。 これで緑の旗を押すたびに「ランキング」「並べ替え結果」の両方が空に戻り、何度でも遊べる準備ができます。
↑上のならべ方も見てね
使うブロック
ヒント
2T キーで selection sort を実装しよう
T キーを押したら、ランキングからスコアの高い順に並べ替え結果へ移していくプログラムを書きます。アルゴリズムは『selection sort (選択ソート)』: 1. ランキングの中から最大値を見つける (内ループ) 2. 最大値を『並べ替え結果』に追加する 3. ランキングからその最大値を削除する 4. 残りのランキングでもう一度繰り返す (外ループ) 5. ランキングが空になるまで続ける 変数を 3 つ作って使います: 「最大値」(今までで見つけた最大の値)、「最大index」(その値の場所)、「見ている」(今チェックしているリストの位置)。 重要な概念: 『くりかえす』の中にもう 1 つ『くりかえす』を入れる『ネストループ』を使います。外側は「全要素分」、内側は「最大値検索」の役割が違うので、混同しないようにしましょう。 注意: T キーを押すとランキングが空になります (中身を並べ替え結果へ移すため)。R キーで記録順を見たいときは T キーの前に押してね。
使うブロック
ヒント
3Q キーで並べ替え結果を発表しよう
並べ替えが完成したら、Q キーで結果を 1 位から順番に発表する仕組みを作ります。これは adv-4 の R キー (ランキング発表) と同じパターンで、リストを「並べ替え結果」に変えるだけです。 「番号」変数を 1 から始めて、「並べ替え結果」の長さ分繰り返して、1 番目・2 番目・... と順番に話します。最大値から並んでいるので、最初に話されるのが 1 位 (最高スコア) になります!
使うブロック
ヒント
AI チャットを使うには、ログインが必要だよ。
ログイン・登録するはじめての方はこちら