Example #1
0
        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);
            }
        }
Example #2
0
        public static void PrintReporter(IIterator iterator)
        {
            iterator.First();

            while (!iterator.Done())
            {
                Console.WriteLine(iterator.Next());
            }
        }