| using System;
public class Die {
  private int numberOfEyes;
  private Random randomNumberSupplier; 
  private int maxNumberOfEyes;
  private static Die uniqueInstance = null;
  private Die (){
    randomNumberSupplier = new Random(unchecked((int)DateTime.Now.Ticks));
    this.maxNumberOfEyes = 6;
    this.Toss();
  }
  public static Die Instance(){
    if (uniqueInstance == null)
      uniqueInstance = new Die();
    return uniqueInstance;
  } 
    
  public void Toss (){
    numberOfEyes = randomNumberSupplier.Next(1,maxNumberOfEyes + 1);
  }
  public int NumberOfEyes() {
    return numberOfEyes;
  }
  public override String ToString(){
    return String.Format("Die[{0}]: {1}", maxNumberOfEyes, numberOfEyes);
  }
} |