6-3 スロットマシンの作成

 5-11節 で作成したスロットマシンを、Timer を使って改良してみましょう。

【練習問題】

 次のようなプログラムを作ってみましょう。

解説

まず、上のようなフォームを作成し、各コンポーネントのNameプロパティを次に様に指定してください。

コンポーネント Name
左のスピンエディット SpinEditLeft
中央のスピンエディット SpinEditCenter
右のスピンエディット SpinEditRight
開始ボタン ButtonStart
停止ボタン ButtonStop

続いて Timer コンポーネントのプロパティを次のように指定してください。

プロパティ
Name TimerSlot
Interval 100
Enabled False

これまで同様、[開始] および [停止] ボタンのイベントハンドラは、次の様になります。

[開始] および [停止] ボタンのイベントハンドラ

今の場合、OnTimer イベントの処理は、3つの乱数の値を、SpinEdit に表示させるという処理なので、次の様になります。

OnTimer イベントの処理

これで、数字がパラパラと変わって表示されるはずです。動作を確認してください。

【基礎課題6-4】

 次に、3つの数字が揃った場合には、「大当たり!」、それ以外の場合は「はずれ!」と表示する部分を付け加えましょう。

【基礎課題6-4】

 まず、判定欄の Edit をフォームに貼り付け、Name プロパティを「EditHantei」としてください。(数字が揃っているかどうかの) 判定は、[停止] ボタンのイベントハンドラ内で行われます。以下の空欄を埋めてプログラムを完成させてください。

(数字が揃っているかどうかの) 判定

※ 判定表示させるように変更したことに応じて、[開始] ボタンのイベントハンドラに、(以前の) 判定を消去する部分を付け加えることを忘れないでください。

【応用課題6-5】

デモンストレーションをダウンロード

 【応用課題6-4】では、0〜2の数字を表示させましたが、これを p.122 のように3つのパネルの色が変わるように修正してください。

【応用課題6-5】

3つの乱数の値を、3つのパネルの色に割り当てる処方は、【応用課題5-2】と全く同様です。今の場合、それを OnTimer イベントの中で行うという部分が異なるだけです。

【応用課題6-6】

デモンストレーションをダウンロード

パネルの色を次々に変えるという処方を応用して、次のような簡易ルーレットを作ってください。

動作内容は次の通りです。プログラムを起動すると、下のフォームが現れます。

起動時

ここで、[開始] ボタンをクリックすると、点灯している部分 (黄色の部分) が時計回りに移動し、[停止] ボタンをクリックした時の位置によって、次のように得点が表示されるというものです。

停止時

点灯していない部分 (パネル) の色は「clBtnFace」としています。

なお、[開始] ボタンをクリックすると最上部の位置つまり100点の位置から新たに始まるものとします。

まず、自分でどのようにプログラミングすれば良いかを考えてください。ポイントは OnTimer イベントのイベントハンドラをどのように記述するか、です。どうしても分からない場合は下のヒントを参照してください。

<ヒント>