![]() ![]() |
パネルの色を次々に変えるという処方を応用して、次のような簡易ルーレットを作ってください。動作内容は次の通りです。プログラムを起動すると、下のフォームが現れます。 |
![]() |
ここで、[開始] ボタンをクリックすると、点灯している部分 (黄色の部分) が時計回りに移動し、[停止] ボタンをクリックした時の位置によって、次のように得点が表示されるというものです。 |
![]() |
点灯していない部分 (パネル) の色は「clBtnFace」としています。 なお、[開始]ボタンをクリックすると最上部の位置つまり100点の位置から新たに始まるものとします。 まず、自分でどのようにプログラミングすれば良いかを考えてください。ポイントは OnTimer イベントのイベントハンドラをどのように記述するか、です。どうしても分からない場合は下のヒントを参照してください。 |
![]()
|
![]() |
次のようなプログラムを作ってみましょう。
@ [開始]ボタンをクリックすると、3つの欄に0〜2までの乱数が次々に表示されます | A[停止]ボタンをクリックするとその時点で表示が止まります。 | |
![]() |
まず、上のようなフォームを作成し、各コンポーネントのNameプロパティを次に様に指定してください。 | 続いて Timer コンポーネントのプロパティを次のように指定してください。 | ||||||||||||||||||||
|
|
これまで同様、[開始] および [停止] ボタンのイベントハンドラは、次の様になります。
![]() |
今の場合、OnTimer イベントの処理は、3つの乱数の値を、CSpinEdit に表示させるという処理なので、次の様になります。
![]() |
これで、数字がパラパラと変わって表示されるはずです。動作を確認してください。
![]() |
次に、3つの数字が揃った場合には、「大当たり!」、それ以外の場合は「はずれ!」と表示する部分を付け加えましょう。
<3つの数字が揃ったとき> | <揃っていないとき> |
![]() |
![]() |
まず、判定欄の Edit をフォームに貼り付け、Name プロパティを「EditHantei」としてください。(数字が揃っているかどうかの) 判定は、[停止] ボタンのイベントハンドラ内で行われます。以下の空欄を埋めてプログラムを完成させてください。
![]() |
※ 判定表示させるように変更したことに応じて、[開始]ボタンのイベントハンドラに、(以前の)判定を消去する部分を付け加えることを忘れないでください。
![]() ![]() |
【応用課題6-4】では、0〜2の数字を表示させましたが、これを 5-11【応用課題5-2】 のように3つのパネルの色が変わるように修正してください。 |
![]() |
3つの乱数の値を、3つのパネルの色に割り当てる処方は、【応用課題5-2】と全く同様です。今の場合、それを OnTimer イベントの中で行うという部分が異なるだけです。 |