public void Explore(IPlanet planet, ICollection <IAstronaut> astronauts)
        {
            while (true)
            {
                IAstronaut astronaut = astronauts.FirstOrDefault(a => a.CanBreath);

                if (astronaut == null)
                {
                    break;
                }

                while (planet.Items.Count != 0)
                {
                    string item = planet.Items.FirstOrDefault();
                    astronaut.Breath();

                    astronaut.Bag.AddItem(item);
                    planet.RemoveItem(item);

                    if (astronaut.CanBreath == false)
                    {
                        break;
                    }
                }

                if (planet.Items.Count == 0)
                {
                    break;
                }
            }
        }
Esempio n. 2
0
        public void Explore(IPlanet planet, ICollection <IAstronaut> astronauts)
        {
            while (true)
            {
                IAstronaut currentAstronauth = astronauts.FirstOrDefault(a => a.CanBreath);

                if (currentAstronauth == null)
                {
                    break;
                }

                while (planet.Items.Count != 0)
                {
                    var currentItem = planet.Items.FirstOrDefault();
                    currentAstronauth.Breath();

                    currentAstronauth.Bag.AddItem(currentItem);
                    planet.RemoveItem(currentItem);

                    if (!currentAstronauth.CanBreath)
                    {
                        break;
                    }
                }

                if (planet.Items.Count == 0)
                {
                    break;
                }
            }
        }