public static ISolver GenerateSolver(string name, Warehouse w, IPickings p) { switch (name) { case SShapeSolver.SolverName: return(new SShapeSolver(w, p)); case SShapeSolverV2.SolverName: return(new SShapeSolverV2(w, p)); case ReturnSolver.SolverName: return(new ReturnSolver(w, p)); case LargestGapSolver.SolverName: return(new LargestGapSolver(w, p)); case DummySolver.SolverName: return(new DummySolver(w, p)); case CompositeSolver.SolverName: return(new CompositeSolver(w, p)); default: Console.WriteLine("Could not recognize algo " + name + ". Default to dummy"); return(new DummySolver(w, p)); } }
public void DrawPickingObjectif(IPickings pickings) { if (_alreadyDrawedWishes.Contains(pickings)) { return; } foreach (var pickingPos in pickings.PickingList) { var blueBrush = new SolidBrush(Color.Blue); int x = DefaultUpperLeftAngleX + pickingPos.UpperLeftX * _horizontalLineLenght; int y = DefaultUpperLeftAngleY + pickingPos.UpperLeftY * _verticalLineLenght; var rect = new Rectangle(x, y, _horizontalLineLenght, _verticalLineLenght); Action <PaintEventArgs> draw = e => e.Graphics.FillRectangle(blueBrush, rect); _drawList.Add(draw); } _alreadyDrawedWishes.Add(pickings); }
private void generate_Click(object sender, EventArgs e) { var rnd = new Random(); //const int nbBlock = 1; int nbBlock = rnd.Next(1, 5); int nbAisles = rnd.Next(1, 20); int aisleLenght = rnd.Next(5, 25); //int nbBlock = 2; //int nbAisles = 6; //int aisleLenght = 1; if (_drawer == null) { _drawer = new Drawer(); } else { _drawer.Clear(); } int wishSize = rnd.Next(1, nbBlock * nbAisles * aisleLenght) / 1; var problem = WarehousePickingCoreGenerator.GenerateProblem(nbBlock, nbAisles, aisleLenght, wishSize); var warehouse = problem.Item1; IPickings pickings = problem.Item2; _drawer.DrawWarehouse(warehouse); Paint += _drawer.Drawing_handler; _drawer.DrawPickingObjectif(pickings); Refresh(); _currentWarehouse = warehouse; _currentPickings = pickings; _dummySolver = null; _sShapeSolver = null; _sShapeSolverV2 = null; _largestGapSolver = null; _returnSolver = null; _compositeSolver = null; }
internal CompositeSolver(Warehouse currentWarehouse, IPickings currentPickings) { Warehouse = currentWarehouse; Pickings = currentPickings; }
internal LargestGapSolver(Warehouse currentWarehouse, IPickings currentPickings) { Warehouse = currentWarehouse; Pickings = currentPickings; }
internal DummySolver(Warehouse warehouse, IPickings pickings) { Pickings = pickings; Warehouse = warehouse; }
internal SShapeSolver(Warehouse currentWarehouse, IPickings currentPickings) { Warehouse = currentWarehouse; Pickings = currentPickings; }
internal ReturnSolver(Warehouse currentWarehouse, IPickings currentPickings) { Warehouse = currentWarehouse; Pickings = currentPickings; }