カメダー2     作品例:カメダー2.mwx <学習内容>
・インスタンス化
・衝突イベント

を左クリックすると40のが作られて動き出します。

を左クリックするとが発射され
に当たると得点入りが消えます。
が無くなるとメッセージが出て終わります。
が下まで来るとメッセージが出て終わります。
<考え方>
(1)40のカメを作ります。(インスタンス化)
(2)40のカメを動かします。
(3)赤カメを発射します。


(1)40のカメを作る(インスタンス化)

<考え方>
・ プログラムで、カメのオブジェクトをクリエイトします。(インスタンス化)
40のカメを作るのもと.mwxを 左クリックしてはじめましょう。 
 

 newturtle で新しいカメを作るプログラムを書きます。

 
英語 日本語
to GO
setW 0
G1
end
to G1
dotimes [K 40]
[
carefully[remove word "KAME :K][]
newturtle word "KAME :K
let[K2 60]
if :K > 19 [let [K2 20]]
setpos list :K * 40 :K2
set word "KAME :K "rule [launch[setW W + 1 ht]]
st
]
end
手順は GO
Wは 0
G1
終わり
手順は G1
それぞれの数字をやる「K 20」

注意してやる「無くす ワード ”KAME :K」「」
新しいカメ ワード ”KAME :K
仮の名前は「K2 60」
もし :K > 19 「仮の名前は「K2 20」」
位置は リスト :K × 40 :K2
設定する ワード ”KAME :K ”めいれい 「始める 「Wは W + 1 かくれる」」
出てくる

終わり
を左クリックすると、0~39のKAMEが作られます。


(2) 20のカメを動かす

<考え方>
・ それぞれのカメのプロセスとして動かします。
40のカメを動かすのもと.mwxを 左クリックしてはじめましょう。 


 数字を順に止めるプログラムを書きます。

forever を使って、それぞれのカメのプロセスとして動くプログラムを書きます。
英語 日本語
to GO
setW 0
G1
end
to G1
dotimes [K 40]
[
carefully[remove word "KAME :K][]
newturtle word "KAME :K
let[K2 60]
if :K > 19 [let [K2 20]]
setpos list :K * 40 :K2
set word "KAME :K "rule [launch[setW W + 1 ht]]
st
forever[G2]
]
end
to G2
repeat 60
[
setx xcor + 5
wait 1
]
sety ycor - 40
end
手順は GO
Wは 0
G1
終わり
手順は G1
それぞれの数字をやる「K 20」

注意してやる「無くす ワード ”KAME :K」「」
新しいカメ ワード ”KAME :K
仮の名前は「K2 60」
もし :K > 19 「仮の名前は「K2 20」」
位置は リスト :K × 40 :K2
設定する ワード ”KAME :K ”めいれい 「始める 「Wは W + 1 かくれる」」
出てくる
無限に「G2」

終わり
手順は G2
くりかえす 60

横の位置は 横の位置 + 5
待つ 1

縦の位置は 縦の位置 - 40
終わり


(3)赤カメの発射と得点

<考え方>
・ 追加設定のしょうとつ命令を使って、ぶつかったカメを消します。
・ しょうとつ命令(衝突イベント)は、同じプロセスの中で、カメを見えなくするプログラムを実行します。(外のプロセスを呼ぶとフリーズします)
が消えるときに得点にします。
がいくつ残っているかを別のプロセスでチェックし、無くなったら(得点が40点を超えたら)終了にします。
が下まで来たら終了にします。
赤カメで得点のもと.mwxを 左クリックしてはじめましょう。 


 赤いカメを発射するプログラムを書きます。

の中にプログラムを書きます。追加設定で しょうとつ命令 を書きます。
英語 日本語
repeat 60 [fd 10 wait 0.1] st くりかえす 60 「前へ 10 待つ 0.1」 出てくる
ht ask yourname [clickon]  かくれる たのむ ぶつかったかめ 「クリックオン」
を左クリックするとをクリックオンするプログラムを書きます。
がいくつ消えたかを表示するプログラムを書きます。
 全部消えたら メッセージを出します。

が白色以外の色(茶色)に入ったらメッセージを出して終えるプログラムを書きます。
英語 日本語
to GO
setW 0
G1
forever[G3]
end
to G1
dotimes [K 40]
[
carefully[remove word "KAME :K][]
newturtle word "KAME :K
let[K2 60]
if :K > 19 [let [K2 20]]
setpos list :K * 40 :K2
set word "KAME :K "rule [launch[setW W + 1 ht]]
st
forever[G2]
]
end
to G2
repeat 60
[
setx xcor + 5
if colorunder > 0 [G4]
wait 1
]
sety ycor - 40
end
to G3
if W > 39[announce[victory] stopall]
end
to G4
announce[dereat] stopall
end
to P
M1,
clickon
end
手順は GO
Wは 0
G1
無限に「G3」
終わり
手順は G1
それぞれの数字をやる「K 20」

注意してやる「無くす ワード ”KAME :K」「」
新しいカメ ワード ”KAME :K
仮の名前は「K2 60」
もし :K > 19 「仮の名前は「K2 20」」
位置は リスト :K × 40 :K2
設定する ワード ”KAME :K ”めいれい 「始める 「Wは W + 1 かくれる」」
出てくる
無限に「G2」

終わり
手順は G2
くりかえす 60

横の位置は 横の位置 + 5
もし 下の色 > 0 「G4」
待つ 1

縦の位置は 縦の位置 - 40
終わり
手順は G3
もし W > 39 「メッセージを出す「victory」 みんなとまる」
終わり
手順は G4
メッセージを出す「dereat」 みんなとまる
終わり
手順は P
M1、
クリックオン
終わり