public void RefreshView() { var enemiesToDelete = new List <Enemy>(); _spaceShip.RefreshBullets(); // Notify all subscribed enemies that shot was fired to update their health if they are // hiy foreach (var bullet in _spaceShip.Bullets) { for (var enemy = _iterator.First(); !_iterator.Done(); enemy = _iterator.Next()) { enemy.DidBulletHit(bullet.Position); if (enemy.Health == 0) { enemiesToDelete.Add(enemy); } } } enemiesToDelete.ForEach(EnemyUnsubscribe); foreach (var enemy in enemiesToDelete) { enemy.Accept(_visitor); } }
public static void PrintReporter(IIterator iterator) { iterator.First(); while (!iterator.Done()) { Console.WriteLine(iterator.Next()); } }