01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2009-01-29 Thu
■ 今日のご近所さん [photo]

昨日は大阪府立大学で授業改善と研究紹介のお話をさせていただきました。
頭の中がクリア(明晰)な方々といっしょにいると、とても刺激になります。
めずらしく写真は撮りませんでした。
大阪に宿泊して帰り道にふと下を見ると、線路が落ちていました。ポイン
ト切替機付きです。一瞬、拾って帰りたくなりました。新幹線からは富士
山がくっきり見えました。家の近所のガソリンスタンドでは、セルフ給油
の給油機をメンテナンス作業をしていました。火気厳禁の作業ですね。
■ 「1時間で学ぶソフトウェアの仕組み」の拡張例 [dolittle][infoedu]
「1時間で学ぶソフトウェアの仕組みのプログラムを、宝物を全部拾ったら
終了するように拡張したい」という質問をいただきましたので、サンプル
を書いておきます。1/12のプログラムの応用です。
1つ目は、画面に宝物の数を表示して、拾うたびに減らしていく方法です。
まず、残りの数を表示する「得点」というフィールドを作り、宝物の数を
入れておきます。宝物の数を変えたときは、この数字も変えてください。
得点=フィールド!作る 3 書く。
そして、自分の値を1減らす「カウント」というメソッドを定義します。こ
の中で、値が0になったときは「おめでとう!」というメッセージを表示し
て、タイマー(時計)を中断するようにしておきます。
得点:カウント=「自分!((自分!読む)−1)書く。「(得点!読む)<=0」!なら「ラベル!"クリア!"作る。時計!中断」実行」。
そして、カメ太の「衝突」のメソッドを、衝突したときに相手を消すこと
に加えて、得点をカウントダウンするように修正します。
かめた:衝突=「|相手| 相手!消える。得点!カウント」。
プログラムをまとめると、次のようになります。最後の3行が修正と追加を
した部分です。
かめた=タートル!作る。 左ボタン=ボタン!"左" 作る。 左ボタン:動作=「かめた!30 左回り」。 右ボタン=ボタン!"右" 作る。 右ボタン:動作=「かめた!30 右回り」。 時計=タイマー!作る。 時計!「かめた!10 歩く」実行。 タートル!作る "tulip.png" 変身する ペンなし 100 100 位置。 タートル!作る "tulip.png" 変身する ペンなし 100 -100 位置。 タートル!作る "tulip.png" 変身する ペンなし -100 100 位置。 かめた:衝突=「|相手| 相手!消える。得点!カウント」。 得点=フィールド!作る 3 書く。 得点:カウント=「自分!((自分!読む)−1)書く。「(得点!読む)<=0」!なら「ラベル!"クリア!"作る。時計!中断」実行」。
別解としては、宝物を配列に入れておき、衝突するたびに配列から削除し
て、配列が空になったら「おめでとう!」というメッセージを表示して、
タイマー(時計)を中断する方法もあります。宝物の数を設定しなくても
済む利点はありますが、プログラムはわかりにくいかもしれません。あと、
画面に宝物の数が表示されません。
まず、配列を作ります。
宝物たち=配列!作る。
続いて、宝物を作り、配列に入れます。
宝物たち!(タートル!作る "tulip.png" 変身する ペンなし 100 100 位置)書く。
宝物たち!(タートル!作る "tulip.png" 変身する ペンなし 100 -100 位置)書く。
宝物たち!(タートル!作る "tulip.png" 変身する ペンなし -100 100 位置)書く。
そして、衝突したときに配列から削除して、配列が空になったときの処理
を記述します。
かめた:衝突=「|相手| 相手!消える。宝物たち!(相手)消す。「(宝物たち!要素数?)<=0」!なら「ラベル!"クリア!"作る。時計!中断」実行」。
プログラムをまとめると、次のようになります。最後の5行が修正した部分
です。
かめた=タートル!作る。 左ボタン=ボタン!"左" "LEFT"作る。 左ボタン:動作=「かめた!30 左回り」。 右ボタン=ボタン!"右" "RIGHT"作る。 右ボタン:動作=「かめた!30 右回り」。 時計=タイマー!作る。 時計!「かめた!10 歩く」実行。 宝物たち=配列!作る。 宝物たち!(タートル!作る "tulip.png" 変身する ペンなし 100 100 位置)書く。 宝物たち!(タートル!作る "tulip.png" 変身する ペンなし 100 -100 位置)書く。 宝物たち!(タートル!作る "tulip.png" 変身する ペンなし -100 100 位置)書く。 かめた:衝突=「|相手| 相手!消える。宝物たち!(相手)消す。「(宝物たち!要素数?)<=0」!なら「ラベル!"クリア!"作る。時計!中断」実行」。
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2011-08-31 20:35



