public MoveRecord(int moveNumber, int discNumber, int fromPole, int toPole, Towers towers) { MoveNumber = moveNumber; DiscNumber = discNumber; FromPole = fromPole; ToPole = toPole; TowerState = CloneTowerObject(towers); }
// Deep Copy private Towers CloneTowerObject(Towers towers) { MemoryStream ms = new MemoryStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, towers); ms.Position = 0; object result = bf.Deserialize(ms); ms.Close(); return((Towers)result); }