繰り返しになりますが、ここで助けが必要です。今日は、2 つのサイコロの結果を合計できるメソッドを作成することからなる ac# の宿題をしていました。 、コードを実行すると、本当に奇妙なことが起こります。コードと結果が自分自身から話すようにします。
using System;
class Program
{
public static String GetTimestamp()
{
DateTime saveNow = DateTime.Now;
return saveNow.ToString("yyyyMMddHHmmssffff");
}
public static int ThrowDice()
{
int randVal1, randVal2;
string TS1, TS2;
Random rand = new Random();
randVal1 = rand.Next(1,6);
TS1 = GetTimestamp();
randVal2 = rand.Next(1,6);
TS2 = GetTimestamp();
Console.WriteLine("Dice 1: \t" + randVal1 + ' ' + TS1);
Console.WriteLine("Dice 2: \t" + randVal2 + ' ' + TS2);
Console.WriteLine("-----------------");
return randVal1 + randVal2;
}
static void Main()
{
for(int i = 1; i<=10;i++)
{
Console.WriteLine("Dice Roll #" + i);
Console.WriteLine("Dice Sum:\t" + ThrowDice());
Console.WriteLine();
}
}
}
さて、これは私がそれを実行したときに得たものです:
ダイスロール #1
ダイス 1: 1 / タイムスタンプ: 201308260146259075
ダイス 2: 2 / タイムスタンプ: 201308260146259131
サイコロの合計: 3
ダイスロール #2
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #3
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #4
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #5
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #6
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #7
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #8
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #9
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
ダイスロール #10
サイコロ 1: 2 / タイムスタンプ: 201308260146259135
ダイス 2: 5 / タイムスタンプ: 201308260146259135
サイコロの合計: 7
-ロール1は完璧です
-ロール2/サイコロ1...パーフェクト、
-ロール 2/ダイス 2... WTH ???
これらの結果は本当に奇妙です。ロールごとに異なるタイムスタンプと異なる値を取得することを期待していました。それらの数字が生成された時間を確認するために私が思いついたタイムスタンプのようなもので、両方の「サイコロ」が同時に転がされているように見え、「ランダム」がクロックを使用してシードを生成しているように見えます。
DiceRoll() メソッドを使用してサイコロのクラス全体を作成しようとさえしましたが、完全に異なるオブジェクトの両方が同じ結果を何度も得ていました..
どうすればこれを修正できますか?、何かアイデアはありますか?