コード例 #1
0
        public Entities Build(int number, int height, int width)
        {
            var    Dico = new Dictionary <string, Entity>(number);
            Entity CreatedEntity;
            var    Entities = new Entities();
            var    Rng      = new Random();
            var    ObsCol   = new CollisionObserver(Entities);
            string key;

            while (number-- > 0)
            {
                key = Guid.NewGuid().ToString();
                if (Rng.Next() % 2 == 0)
                {
                    CreatedEntity = new Pigeon(Rng.Next() % width, Rng.Next() % height, key, ObsCol);
                    if (Rng.Next() % 2 == 0)
                    {
                        CreatedEntity = new PacificPigeonDecorator((Pigeon)CreatedEntity);
                    }
                }
                else
                {
                    CreatedEntity = new Rat(Rng.Next() % width, Rng.Next() % height, key, ObsCol);
                }
                Dico.Add(key, CreatedEntity);
            }

            Entities.AllEntities = Dico;

            return(new Entities(Dico));
        }
コード例 #2
0
        public Entities Build(int number, int height, int width)
        {
            int    tmpRng;
            var    Dico     = new Dictionary <string, Entity>(number);
            var    Entities = new Entities();
            var    Rng      = new Random();
            var    ObsCol   = new CollisionObserver(Entities);
            Entity CreatedEntity;
            string key;

            while (number-- > 0)
            {
                tmpRng = Rng.Next() % 3;
                key    = Guid.NewGuid().ToString();

                switch (tmpRng)
                {
                case 0:
                    CreatedEntity = new Zombie(Rng.Next() % width, Rng.Next() % height, key, ObsCol);
                    break;

                case 1:
                    CreatedEntity = new Pigeon(Rng.Next() % width, Rng.Next() % height, key, ObsCol);
                    if (Rng.Next() % 2 == 0)
                    {
                        CreatedEntity = new PacificPigeonDecorator((Pigeon)CreatedEntity);
                    }
                    break;

                case 2:
                default:
                    CreatedEntity = new Rat(Rng.Next() % width, Rng.Next() % height, key, ObsCol);
                    break;
                }
                Dico.Add(key, CreatedEntity);
            }

            Entities.AllEntities = Dico;

            return(Entities);
        }
コード例 #3
0
 public Pigeon(int x, int y, string key, CollisionObserver obs) : base(x, y, key, obs)
 {
     Token = 'P';
 }
コード例 #4
0
 protected Entity(int x, int y, string key, CollisionObserver collisionObserver)
 {
     CollisionObserver = collisionObserver;
     Position          = new Tuple <int, int>(x, y);
     Key = key;
 }
コード例 #5
0
ファイル: Rat.cs プロジェクト: Distil62/PigeonZombieRat
 public Rat(int x, int y, string key, CollisionObserver obs) : base(x, y, key, obs)
 {
     Token = 'R';
 }
コード例 #6
0
ファイル: Zombie.cs プロジェクト: Distil62/PigeonZombieRat
 public Zombie(int x, int y, string key, CollisionObserver obs) : base(x, y, key, obs)
 {
     Token = 'Z';
 }