【学習】WinFormsで乱数を使ってみよう(サイコロアプリ)
これまでの学習では、
- ボタンを押す
- 決まった値が表示される
という形でプログラムを動かしてきました。
しかし、ゲームやアプリにはもう一つの仕組みがあります。
毎回違う値が出る
という仕組みです。これが乱数です。
今回は C# の Random クラスを使って、ボタンを押すたびに 1〜6 の数字がランダムに表示されるサイコロアプリを作ります。
目次
今日作るもの
振る ボタンを押すと
3
のように 1〜6 の数字がランダムに表示されます。
何度押しても毎回違う数字が出ます。
ソリューションとプロジェクトを作る
Visual Studio で新しいプロジェクトを作ります。
- テンプレート: Windows Forms アプリ (.NET Framework)
- ソリューション名: RandomSample
- プロジェクト名: Dice
作成すると Form1 が表示されます。
フォームに配置するコントロール
フォームに次の2つを配置します。
| コントロール | 名前 |
|---|---|
| Label | resultLabel |
| Button | rollButton |
Label には最初「?」や「0」を表示しておくと分かりやすいです。
Randomクラスとは
C# では Random クラスで乱数を扱います。
Random rnd = new Random();
int num = rnd.Next(1, 7); // 1以上7未満 = 1〜6
Next(1, 7) は1以上7未満の整数を返します。つまり 1, 2, 3, 4, 5, 6 のいずれかです。
ボタンのイベントを登録する
rollButton をダブルクリックすると rollButton_Click イベントが作成されます。
ここに乱数を表示する処理を書きます。
完成コード
using System;
using System.Windows.Forms;
namespace RandomSample
{
public partial class Form1 : Form
{
Random rnd = new Random();
public Form1()
{
InitializeComponent();
}
private void rollButton_Click(object sender, EventArgs e)
{
// 1〜6 の乱数を取得
int num = rnd.Next(1, 7);
// Label に表示
resultLabel.Text = num.ToString();
}
}
}
プログラムの流れ
振るボタンを押す
↓
rnd.Next(1, 7) で 1〜6 の乱数を取得
↓
resultLabel に表示
重要ポイント
Random の Next(最小値, 最大値) は「最大値未満」 です。
Next(1, 7)→ 1, 2, 3, 4, 5, 6(7は含まれない)- サイコロは 1〜6 なので、
Next(1, 7)が正解です
乱数を使うと、
- ゲームのダメージ
- くじ引き
- ランダムな選択
など、毎回違う動きが作れます。
発展アイデア
Random を使うと次のようなものも作れます。
- 当たりくじ(当たり / はずれ)
- じゃんけん(グー / チョキ / パー)
- スロット風の数字表示
- 簡単な RPG のダメージ計算
乱数はゲームの基本の一つです。
訪問数 1 回, 今日の訪問数 1回



ディスカッション
コメント一覧
まだ、コメントがありません