福野泰介の一日一創 - create every day

プログラミングB分類と小6算数、30m走ゲームと速さの計算

2018/12/04
#KidsIT #IchigoJam 

2020年からの小学校プログラミング必修化、先月「小学校プログラミング教育の手引」が第二版へと改訂されました。 英語や算数など、各教科での実施となるB分類。今週、鯖江の進徳小学校と鯖江東小学校で実施予定です。

こちら、新作、30m走ゲーム!

30m走ゲーム、作り方

10 CLT:X=0 20 CLS:LC X,15:?"O" 30 IF INKEY()!=28 CONT 40 IF INKEY()!=29 CONT 50 X=X+1 60 GOTO 20

キャラクターを変えるには、20行を次のように改造。(ALT+RでもOKです)

20 CLS:LC X,15:?CHR$(252)

パタパタ走るアニメーションにするには、35行を追加。(ALT+SでもOKです)

35 LC X,15:?CHR$(251)

どこまでも走るだけではおもしろくないので、1コマ1mと見立てて30m未満なら繰り返し、とIFで条件を付けます。

60 IF X<30 GOTO 20

タイムを測ります。

70 T=TICK()*10/6 80 ?T

1/100秒単位で表示されるタイム。100で1秒の意味。
(解説:TICK()は1秒に60進むので、60で割って100をかけると1/100秒単位になりますが、先に60で割ってしまうと小数点以下が切り捨てられてしまいます。なので、先に100をかけて60で割ります。これは、10をかけて6で割っても同じ意味なので、*10/6とします)

30m走の速さを、平均時速として計算してみましょう。

90 V=10800/T:?V;"km/h"

(解説:30mをT/100秒かけて走ったことは、0.03kmをT/100*60*60時間かけて走ったことと同じです。よって時速(km/h)は、0.03/(T/100*60*60) = 10800/T と計算できます)

タイムをかっこよく、小数点付き表示にするには、このようにすればOK!

80 ?T/100;".";T/10%10;T%10;"sec"

30m走ゲーム、プログラム全文はこちら

10 CLT:X=0 20 CLS:LC X,15:?CHR$(252) 30 IF INKEY()!=28 CONT 35 LC X,15:?CHR$(251) 40 IF INKEY()!=29 CONT 50 X=X+1 60 IF X<30 GOTO 20 70 T=TICK()*10/6 80 ?T/100;".";T/10%10;T%10;"sec" 90 V=10800/T:?V;"km/h"

(IchigoJam web で、遊んでみる - 左右キーで走る、もう一度は、RUN、エンター)

おまけ
IoT対応ファームのIchigoSodaを使うと、たった1行でネット対戦30m走ゲームになります!

100 IOT.OUT T

つまづきやすいところも、分かりづらいところも、ゲームとプログラミングで楽しく克服する方法を身につければ怖くない!

links
- 小学校段階のプログラミングに関する学習活動の分類(例)でまとめる鯖江の活動 - 教育の情報化フォーラム
- 小学校プログラミング授業、低学年から高学年まで全部IchigoJam!? / 東京都小金井市前原小学校の授業参観と講演
- 小学校プログラミング教育の手引:文部科学省

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像