C# でサイコロを再現する サンプルプログラム と 解説 です。
乱数の生成方法
C# で乱数を生成するには、Random クラスを使用します。Random クラスの インスタンスを生成(new) し、 Next() メソッドを呼ぶ度に 乱数 が返されます。using System;
var rand = new Random();
乱数値(最小値 ~ 最大値 - 1) = rand.Next(最小値, 最大値);
乱数値(最小値 ~ 最大値 - 1) = rand.Next(最小値, 最大値);
乱数値(最小値 ~ 最大値 - 1) = rand.Next(最小値, 最大値);
- Next() メソッドを呼ぶたびに乱数が返されます。
- 1 ~ 6 の乱数を生成したい場合は、Next(1, 7); です。
- 詳細は C# - 乱数を生成する を参照してください。
サイコロの実現
1 ~ 6 の値をランダムに生成するには、次のようにします。using System;
Random rand = new Random();
int サイコロの結果(1 ~ 6) = rand.Next(1, 7);
サイコロの結果(1 ~ 6) = rand.Next(1, 7);
サイコロの結果(1 ~ 6) = rand.Next(1, 7);
サイコロの結果(1 ~ 6) = rand.Next(1, 7);
複数のサイコロを振る
サンプルプログラム - 複数のサイコロを振る、サイコロ関数using System;
using System.Collections.Generic;
/// <summary>
/// 複数のサイコロを振る関数
/// </summary>
/// <param name="サイコロの個数">一度に振るサイコロの個数</param>
/// <param name="サイコロ出目の最小値">サイコロを振った結果の最小値</param>
/// <param name="サイコロ出目の最大値">サイコロを振った結果の最大値</param>
/// <returns>サイコロの結果。サイコロの個数分、リスト形式で結果を返す。</returns>
List<int> サイコロ(int サイコロの個数, int サイコロ出目の最小値, int サイコロ出目の最大値)
{
var サイコロの結果リスト = new List<int>();
// Random クラスのインスタンス生成
var rand = new Random();
// サイコロの個数 分、ループ
for (int i = 0; i < サイコロの個数; i++)
{
var サイコロの結果 = rand.Next(サイコロ出目の最小値, サイコロ出目の最大値 + 1);
// サイコロの結果を格納
サイコロの結果リスト.Add(サイコロの結果);
}
return サイコロの結果リスト;
}
サンプルプログラム - サイコロ関数の使用例
// 4個のサイコロを振る
int サイコロの個数 = 4;
// サイコロの目は 1 ~ 6
int サイコロ出目の最小値 = 1;
int サイコロ出目の最大値 = 6;
// サイコロを振る
List<int> サイコロの結果リスト = サイコロ(サイコロの個数, サイコロ出目の最小値, サイコロ出目の最大値);
// 結果を表示
System.Console.WriteLine($"{サイコロの結果リスト.Count}個のサイコロを投げた結果\r\n");
// 結果の数分、ループ
for (int i = 0; i < サイコロの結果リスト.Count; i++)
{
// 結果を取得
int サイコロの結果 = サイコロの結果リスト[i];
// 結果を表示
System.Console.WriteLine($"{i + 1}個目 = {サイコロの結果}");
}
検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.9.4
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.964 Experience: Windows Feature Experience Pack 120.2212.2020.0