public static Pole FindDisk(Disk diskToFind) { foreach (Pole pole in Poles) { if (pole.Disks.ContainsValue(diskToFind)) { return pole; } } return null; }
public bool AllowDisk(Disk disk) { if (disk == null) { return false; } if (Disks.Count == 0) { return true; } return GetTopDisk().Number > disk.Number; }
public void AddDisk(Disk disk) { if (disk == null) { return; } if (AllowDisk(disk)) { disk.MoveToPole(this); Disks.Add(disk.Number, disk); } }
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); } }
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); } }