C# exercises (4) Slot machine

Visual Studio community 2015 アカウントについて (学内専用)

スロットマシンの作成

Slot machine

スロットのプログラムに必要な3つの部品

  • 数字を表示させるための部品
    •   → ラベル (Labelコントロール)
  • スロットを開始するための部品
    •   → ボタン (Buttonコントロール)
  • 数字の書き換えを短い間隔で行うため、その間隔を計るための部品
    •   → タイマー (Timerコントロール)

これらの部品はツールボックスに入っている

デザイン

部品の貼り付け

slot2

文字の大きさの変更

フォントの大きさを72ポイント程度にする

プログラム

コントロールとプログラムの関係

  • コントロールに対して何かをすると、イベントが発生する
    • イベントに対応したプログラムを作成する
  • フォーム上のボタン(button1)をダブルクリックすると、ボタンをクリックしたときに発生するイベントに対応したプログラム(button1_Click)が自動的に生成される

slot3

Timerコントロール

一定の間隔で処理をさせたいときに使う

  • timer1:Timerコントロールの変数名
  • Start()はタイマーを開始する命令
  • Intervalに設定している間隔で、定期的にtimer1_Tick()を発生させる
  • Intervalプロパティに設定する時間はミリ秒単位
    • Intervalプロパティに100を設定すると、100ミリ秒(0.1秒)ごとにtimer1_Tick()が呼ばれる

乱数を生成するイベントのプログラムの作成

0以上10未満の乱数を生成する

Timerコントロールをダブルクリック

  • –フォームの下に貼り付いているTimerコントロールをダブルクリックすると、自動的にtimer1_Tickというイベントのプログラムが生成される
  • –その中に、以下のプログラムを書く
  • –Next()命令により、0以上10未満の乱数を生成する
  • –それをLabelコントロールのTextプロパティに代入する
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DigitalClock
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToLongTimeString();
            Random random = new Random();
            label1.Text = random.Next(10).ToString();
        }
    }
}

実行してみる

スクリーンショット 2016-05-12 14.55.35

機能追加

音声を追加

  • 一番最初に、using System.Media; を追加
  • button1_Clickイベントの{ } の中に
SoundPlayer sound = new SoundPlayer(@“ファイル名”);
sound.Play();

(ファイル名の指定で、””の前に@を書くと、\を2つ書かなくても良くなる)

停止機能

ボタン(開始/停止)機能