using System;
public class Die
{
private static Random _random = new Random();
public int CurrentRoll { get; private set; }
public int Min { get; private set; }
public int Max { get; private set; }
public Die(int min, int max)
{
Min = min;
Max = max;
Roll();
}
public int Roll()
{
CurrentRoll = _random.Next(Min, Max+1); // note the upperbound is exlusive hence +1
return CurrentRoll;
}
}
public class Test
{
public static void Main()
{
Die d1 = new Die(1, 6);
Die d2 = new Die(1, 6);
Console.WriteLine("d1: " + d1.Roll());
Console.WriteLine("d2: " + d2.Roll());
Console.WriteLine("d1: " + d1.Roll());
Console.WriteLine("d2: " + d2.Roll());
Console.WriteLine("d1: " + d1.Roll());
Console.WriteLine("d2: " + d2.Roll());
Console.WriteLine("d1: " + d1.Roll());
Console.WriteLine("d2: " + d2.Roll());
}
}
dXNpbmcgU3lzdGVtOwogCiAgICBwdWJsaWMgY2xhc3MgRGllCiAgICB7CiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgUmFuZG9tIF9yYW5kb20gPSBuZXcgUmFuZG9tKCk7CiAKICAgICAgICBwdWJsaWMgaW50IEN1cnJlbnRSb2xsIHsgZ2V0OyBwcml2YXRlIHNldDsgfQogCiAgICAgICAgcHVibGljIGludCBNaW4geyBnZXQ7IHByaXZhdGUgc2V0OyB9CiAKICAgICAgICBwdWJsaWMgaW50IE1heCB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0KIAogICAgICAgIHB1YmxpYyBEaWUoaW50IG1pbiwgaW50IG1heCkKICAgICAgICB7CiAgICAgICAgICAgIE1pbiA9IG1pbjsKICAgICAgICAgICAgTWF4ID0gbWF4OwogICAgICAgICAgICBSb2xsKCk7CiAgICAgICAgfQogCiAgICAgICAgcHVibGljIGludCBSb2xsKCkKICAgICAgICB7CiAgICAgICAgICAgIEN1cnJlbnRSb2xsID0gX3JhbmRvbS5OZXh0KE1pbiwgTWF4KzEpOyAvLyBub3RlIHRoZSB1cHBlcmJvdW5kIGlzIGV4bHVzaXZlIGhlbmNlICsxCiAgICAgICAgICAgIHJldHVybiBDdXJyZW50Um9sbDsKICAgICAgICB9CiAgICB9CiAKcHVibGljIGNsYXNzIFRlc3QKewogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgICAgICB7CiAgICAgICAgICAgICAgICBEaWUgZDEgPSBuZXcgRGllKDEsIDYpOwogICAgICAgIERpZSBkMiA9IG5ldyBEaWUoMSwgNik7CiAKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiZDE6ICIgKyBkMS5Sb2xsKCkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJkMjogIiArIGQyLlJvbGwoKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoImQxOiAiICsgZDEuUm9sbCgpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiZDI6ICIgKyBkMi5Sb2xsKCkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJkMTogIiArIGQxLlJvbGwoKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoImQyOiAiICsgZDIuUm9sbCgpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiZDE6ICIgKyBkMS5Sb2xsKCkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJkMjogIiArIGQyLlJvbGwoKSk7CiAgICAgICAgfQp9