public void OpenDoor(Point point) { Contract.Requires(CanOpenDoor(point)); revealedAreas.Add(GetDoor(point).Areas.Where(area => !revealedAreas.Contains(area)).FirstOrDefault()); GetDoor(point).Opened = true; boardChanged = true; }