アイデア集にある「スロットマシーン」を参考に今日の授業を組み立てました。<スロットマシーン>目標となるスロットマシーンをまずはデモンストレーション。スロットマシーンの内容は以下のように整理しました。スタートボタンを押すと、数字がランダムに動き出す。それぞれのストップボタンが押されると、数字が止まる。持ち点は1000点でスタートし、1回ごとに50点が引かれる。3つの数字がそろうと、500点が加算される。今回は、ソースコードを一切提示せず、それぞれ模索をしてもらいました。はいってもデモを見ただけでは、とりあえずFormにオブジェクトを配置することはできても、そこから先どうしていいかわからないということで、作成の手順を以下のように提示しました。作成の手順スタートボタンが押されると、数字がランダムに動き出す。(ヒント:Timerの活用)ストップボタンが押されると、数字が止まる。プログラムが動き始めた段階で(FormのLoadイベント)、持ち点を与える。スタートボタンが押された段階で持ち点から50点をひく。数字がそろった場合、そろわなかった場合、それぞれに応じてメッセージを出す。数字がそろった場合、持ち点に500点を足す。持ち点がなくなった段階でゲーム終了のメッセージをだす。ストップボタンを押す順番を問わず、きちんと動くようにする。スタートボタンが押されると、数字がランダムに動き出す。スタートボタンと同時にタイマーが動き出す。タイマーイベントで乱数を発生させてそれを表示する、というこの切り分けができずに混乱している生徒が見受けられました。(ボタンのクリックイベントで乱数を出してしまう。)ここをきちんと整理し、具体化するのに時間がかかっていました。タイマーのIntervalは200(ミリ秒)程度。ストップボタンが押されると、数字が止まる。止めるだけならば、簡単です、タイマーを止めればいいわけですから。プログラムが動き始めた段階で(FormのLoadイベント)、持ち点を与える。しましょうということで説明しました。持ち点を記憶させる変数を設定する必要性もありますね。スタートボタンが押された段階で持ち点から50点をひく。スタートボタンのクリックイベントに持ち点をひく記述をします。数字がそろった場合、そろわなかった場合、それぞれに応じてメッセージを出す。条件分岐を「IF文」で書いていきますが、問題はどこに記述するかです。左から順に止めていくと想定して、一番右のストップボタンのクリックイベントに書いていくことにします。数字がそろった場合、持ち点に500点を足す。持ち点に500点を足すのはいいのですが、検証できません。しましたら、生徒の1人がタイマーのIntervalを一時的に大きくすることで数字をゆっくりまわし、3つのぞろ目を作って確認していました。持ち点がなくなった段階でゲーム終了のメッセージをだす。スタートボタンのところで持ち点のチェックをすることにします。ストップボタンを押す順番を問わず、きちんと動くようにする。ストップボタンが押されたときに、他のボタンが既に押された状態であるかどうかを判定すればよいということですね。50分×2時間の授業なのですが、みな休み時間も休まずに取り組んでいました。全員がとはいえませんが、ほぼ完成していました。終わり10分のところで、以下のソースコードを参考までにということで提示しました。"持ち点がありません。