コンテンツにスキップ

Scratch:ランキングボード(考え中・・・)

完成サンプル

sb2 ランキングボード(考え中).sb2

概要

  • 前提:リストがあつかえること。

  • 注意点:小学生には非常に難しいので、興味をもった子にのみ教えるのがよいかもしれない。

  • 空のリストに対して、データが昇順になるように新規の記録データを追加していく。

  • コードはわかりやすさを重視、IF分の条件は省略しないなど、効率は無視している。もっといいやり方、教え方はいくらでもあると思う・・・。

  • ソートロジックはバブルソートもどきのつもり、、、

学習のポイント

  • ソートアルゴリズムの基礎、データ構造。

  • ややこしいが、具体的なデータでデータ数が2になるまでくらいまでを順をおって考えている。3までを考えてみた方がわかりやすかもしれない。

指導手順

準備

  1. 連打ゲーム、早押しゲームなどを作るか、既存のものをひらく。

  2. ソートのために変数「リストの順位」を作り、旗をクリックした直後に1になるようにする。ここまでのサンプルは下記。

スクリーンショット 2018-06-03 17.30.19.png

  1. 下記のスクリプトを書く。(カウントダウン後、メッセージを送る。)

スクリーンショット 2018-06-03 17.30.19.png

スクリーンショット 2018-06-03 17.30.25.png

  1. 動きを確認。

ソートと記録のロジックを作る。

<記録リストのデータ数が0の時の処理を記述>

  1. リストに記録データをついかする。

スクリーンショット 2018-06-03 17.34.29.png

<記録リストのデータ数が1の時の処理を記述>

現在の記録とリスト内のデータを比較し、

  1. 今回の記録の方が小さければ、リスト内のデータと同じ位置に今回の記録を挿入する。

  2. 今回の記録の方が大きければ、リスト内のデータの最後に今回の記録を挿入する。

スクリーンショット 2018-06-03 17.36.40.png

<記録リストのデータ数が2以上の時の処理を記述>

現在の記録とリスト内のデータを上から順に比較し、

  1. 今回の記録の方が小さければ、リスト内のデータと同じ位置に今回の記録を挿入する。

  2. 今回の記録の方が大きければ、リスト内の次のデータとの比較にすすむ。

  3. ただし、2の時、もし、リスト内部の最後のデータに達していれば、次のデータはないので、リストの最後に今回の記録を追加して終了する。

スクリーンショット 2018-06-03 17.41.40.png

参考

  • 連打ゲームを作った生徒がソートしたがったので、作ってみた。