Exemplo n.º 1
0
        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);
 }
Exemplo n.º 3
0
        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;
 }
Exemplo n.º 5
0
 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;
 }