public void Load(Trail trail) { Contract.Requires(trail != null, nameof(trail)); cells.Clear(); trail.ForEach(cell => SetState(cell.X, cell.Y, cell.Kind.ToCellState())); snapshot = new Dictionary <System.Drawing.Point, CellState>(cells); }