Exemplo n.º 1
0
        //metoda do uzupelnienia brakujacych BoxPointow
        public void addBoxPoints(Map map, Control.ControlCollection Controls)
        {
            foreach (Point p in map.getPointList())
            {
                if (map.getPart(p.X, p.Y).GetType() == typeof(Floor))
                {
                    int  x        = map.getPart(p.X, p.Y).getX();
                    int  y        = map.getPart(p.X, p.Y).getY();
                    Part toRemove = map.getPart(p.X, p.Y);

                    map.setPart(Factory.produceBoxPoint(x, y, map.getStyle()), p.X, p.Y);
                    Controls.Add(map.getPart(p.X, p.Y).picturebox);
                    Controls.Remove(toRemove.picturebox);
                }
            }
        }
Exemplo n.º 2
0
        private List <List <Part> > convertMapFromMemento(List <List <int> > map)
        {
            List <List <Part> > state = new List <List <Part> >();
            int            posX       = 0;
            int            posY       = 0;
            FactoryMapPart factory    = new FactoryMapPart();

            foreach (List <int> list in map)
            {
                int         lineElementCounter = 0;
                List <Part> singleLine         = new List <Part>();

                foreach (int part in list)
                {
                    if (part == 5)
                    {
                        lineElementCounter++;
                        singleLine.Add(factory.produceHero(posX, posY, newMap.getStyle()));
                    }


                    if (part == 6)
                    {
                        singleLine.Add(factory.produceBox(posX, posY, newMap.getStyle()));
                        lineElementCounter++;
                    }


                    if (part == 1)
                    {
                        singleLine.Add(factory.produceEmpty(posX, posY, newMap.getStyle()));
                        lineElementCounter++;
                    }


                    if (part == 2)
                    {
                        singleLine.Add(factory.produceWall(posX, posY, newMap.getStyle()));
                        lineElementCounter++;
                    }


                    if (part == 4)
                    {
                        singleLine.Add(factory.produceBoxPoint(posX, posY, newMap.getStyle()));
                        lineElementCounter++;
                    }


                    if (part == 3)
                    {
                        singleLine.Add(factory.produceFloor(posX, posY, newMap.getStyle()));
                        lineElementCounter++;
                    }

                    posX = posX + 64;
                }
                posY = posY + 64;
                posX = posX - (64 * lineElementCounter);

                state.Add(singleLine);
            }

            return(state);
        }