光の進み方  作品例:光の進み方.mwx

2匹のカメが光線となって、板ガラスとプリズムに進みむと曲がります。
<学習内容>
・カメごとの状態変数の考え方
・手順を構造的にメインとサブで考える
・色判定
 でカメが光として進み、

 板ガラスとプリズムで曲がります。
<考え方>
・光には粒子としての性質があり、真空の中では直進し、密度の高い物質の中を進むときは、進む速さが遅くなります。
・かめ1とかめ2を光の粒子として考え、色番号の大きいところを進むときは、進み方が遅くなるようにプログラミングします。
・光にある波の性質があります。波とは、波を作る粒子がたがいにえいきょうしあって動きが伝わることだと考えてみました。
・かめ1とかめ2を光の粒子として、かめ1がかめ2の回りを回り、かめ2がかめ1の回りを回るという、たがいにえいきょうし合うプログラムを考えます。
<プログラミング> 光の進み方のもとを 左クリックしてはじめましょう。 


1.メインとサブに分けて手順を作ります。
(1)最初によばれる メインの手順を書きます。
 英語 日本語
to GO
everyone[setQ pos]
clean
forever[R]
end
手順は GO
全部「Qは 位置」
絵だけ消す
無限に「R」
終わり 
・メインで、カメごとのスタート位置が 状態変数の Q に保存されます。
・状態変数の Q は、 コマンドセンター カメの中の名前は ”Q を実行して作ってあります。カメごとの状態が保存されるローカル変数です。
(2)メインからよばる 直進するサブの手順を書きます。
 英語 日本語
to R
kame1,
towards "kame2
left 90
forward 20 / colorunder P
kame2,
towards "kame1
right 90
forward 20 / colorunder P
end
手順は R
kame1、
方向 ”kame2
左へ 90
前へ 20 ÷ 下の色 P
kame2、
方向 ”kame1
右へ 90
前へ 20 ÷ 下の色 P
終わり
 
(3)サブからよばれる 線を書くサブの手順を書きます。
 英語 日本語
to P
back 2 pd
forward 0 pu
forward 2
end
手順は P
後ろへ 2 ペンを下ろす
前へ 0 ペンを上げる
前へ 2
終わり 
でカメが光として進み、板ガラスとプリズムに入ると進み方が遅くなり曲がります。
・カメが白色に乗ると で、スタートした位置にもどって、プログラムが止まります。

 英語 日本語
everyone [setpos Q] stopall 全部「位置は Q」 みんなとまる

・ 状態変数に スタートしたときのカメの位置が保存されているので、setpos Q でスタートした位置にもどります。
・ここで使われる Q 状態変数とよばれる変数で、カメごとに使われるのでローカル変数でもあります。
 コマンドセンター カメの中の名前は ”Q を実行して作ってあります。