예제 #1
0
 public static Pole FindDisk(Disk diskToFind)
 {
     foreach (Pole pole in Poles)
     {
         if (pole.Disks.ContainsValue(diskToFind))
         {
             return pole;
         }
     }
     return null;
 }
예제 #2
0
파일: Pole.cs 프로젝트: eserozvataf/itec316
 public bool AllowDisk(Disk disk)
 {
     if (disk == null)
     {
         return false;
     }
     if (Disks.Count == 0)
     {
         return true;
     }
     return GetTopDisk().Number > disk.Number;
 }
예제 #3
0
파일: Pole.cs 프로젝트: eserozvataf/itec316
 public void AddDisk(Disk disk)
 {
     if (disk == null)
     {
         return;
     }
     if (AllowDisk(disk))
     {
         disk.MoveToPole(this);
         Disks.Add(disk.Number, disk);
     }
 }
예제 #4
0
        public static void RestartGame()
        {
            MoveCount = 0;
            Poles = new List<Pole>();
            Poles.Add(new Pole(0));
            Poles.Add(new Pole(1));
            Poles.Add(new Pole(2));

            for (int i = NumberOfDisks - 1; i >= 0; i--)
            {
                Disk disk = new Disk(i);
                Poles[0].AddDisk(disk);
            }
        }
예제 #5
0
 private void InitDisk(Disk disk)
 {
     if (!this.Controls.Contains(disk))
     {
         disk.MouseDown += new MouseEventHandler(disk_MouseDown);
         disk.QueryContinueDrag += new QueryContinueDragEventHandler(thisBox_QueryContinueDrag);
         disk.DragOver += new DragEventHandler(thisBox_DragOver);
         this.Controls.Add(disk);
     }
 }