//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); } } }
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); }