再次,我在这里需要一些帮助,今天我正在做 ac# 作业,基本上包括创建一个可以总结 2 个骰子掷骰结果的方法,到目前为止,太好了!,没有什么难做的事......但是,当我运行我的代码时,会发生一些非常奇怪的事情,我会让我的代码和结果自己说话:
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
-Roll 1 是完美的
-掷 2/骰子 1...完美,
-掷 2/骰子 2...WTH???
这些结果真的很奇怪,我期待在每卷上得到不同的时间戳和不同的值。时间戳是我想出的一个想法来检查生成这些数字的时间,看起来两个“骰子”同时滚动,看起来“随机”使用时钟生成种子。
我什至尝试使用 DiceRoll() 方法为骰子创建一个完整的类,但即使在那里两个完全不同的对象我只是一遍又一遍地得到相同的结果..
我该如何解决这个问题?有什么想法吗?