示例#1
0
        public void PlaatsContainers()
        {
            List <int> powerStackRows = new List <int> {
                0
            };
            Ship ship = new Ship(2, 3, 2000000, 120000, powerStackRows);
            List <IContainer> containerList = new List <IContainer>
            {
                new Container(5000, false, false),
                new Container(5000, false, false),
                new Container(5000, false, false),
                new Container(5000, false, false),
                new Container(5000, false, true),
                new Container(5000, false, true),
                new Container(5000, false, true),
                new Container(5000, true, true),
                new Container(5000, true, true),
                new Container(5000, true, false)
            };
            AlgoritmeVerloop algoritme = new AlgoritmeVerloop();

            List <IContainer> restContainers = algoritme.PlaatsContainers(ship, containerList);

            //valuable check
            Assert.AreEqual(true, ship.GetList()[0][0].HasValuable);
            Assert.AreEqual(true, ship.GetList()[0][1].HasValuable);
            Assert.AreEqual(false, ship.GetList()[0][2].HasValuable);
            Assert.AreEqual(true, ship.GetList()[1][0].HasValuable);
            Assert.AreEqual(true, ship.GetList()[1][1].HasValuable);
            Assert.AreEqual(true, ship.GetList()[1][2].HasValuable);

            //stack height check
            Assert.AreEqual(2, ship.GetList()[0][0].Height);
            Assert.AreEqual(2, ship.GetList()[0][1].Height);
            Assert.AreEqual(1, ship.GetList()[0][2].Height);
            Assert.AreEqual(2, ship.GetList()[1][0].Height);
            Assert.AreEqual(2, ship.GetList()[1][1].Height);
            Assert.AreEqual(1, ship.GetList()[1][2].Height);

            //weight check
            Assert.AreEqual(10000, ship.GetList()[0][0].Weight);
            Assert.AreEqual(10000, ship.GetList()[0][1].Weight);
            Assert.AreEqual(5000, ship.GetList()[0][2].Weight);
            Assert.AreEqual(10000, ship.GetList()[1][0].Weight);
            Assert.AreEqual(10000, ship.GetList()[1][1].Weight);
            Assert.AreEqual(5000, ship.GetList()[1][2].Weight);

            //electricity check
            Assert.AreEqual(true, ship.GetList()[0][0].Electricity);
            Assert.AreEqual(false, ship.GetList()[0][1].Electricity);
            Assert.AreEqual(false, ship.GetList()[0][2].Electricity);
            Assert.AreEqual(true, ship.GetList()[1][0].Electricity);
            Assert.AreEqual(false, ship.GetList()[1][1].Electricity);
            Assert.AreEqual(false, ship.GetList()[1][2].Electricity);
        }
示例#2
0
        private void btnSorteer_Click(object sender, EventArgs e)
        {
            foreach (ListBox listBox in listboxList)
            {
                Controls.Remove(listBox);
            }

            foreach (Label label in stackInfoLabelList)
            {
                Controls.Remove(label);
            }
            stackInfoLabelList.Clear();
            listboxList.Clear();
            AlgoritmeVerloop  algoritmeVerloop = new AlgoritmeVerloop();
            List <IContainer> containerList    = new List <IContainer>();

            foreach (IContainer containerItem in lbContainer.Items)
            {
                containerList.Add(containerItem);
            }
            lbContainer.Items.Clear();
            List <IContainer> restContainers = algoritmeVerloop.PlaatsContainers(ship, containerList);

            foreach (IContainer container in restContainers)
            {
                lbContainer.Items.Add(container);
            }
            List <List <IStack> > stackList = ship.GetList();

            for (int x = 0; x < stackList.Count; x++)
            {
                for (int y = 0; y < stackList[x].Count; y++)
                {
                    ListBox listBox = new ListBox
                    {
                        Width  = 120,
                        Height = 60,
                        Left   = 150 + (x * 120),
                        Top    = 20 + (y * 75),
                        Name   = $"{x},{y}"
                    };

                    Label label = new Label
                    {
                        Text = stackList[x][y].Weight.ToString(), Top = 20 + (y * 75) - 15, Left = 150 + (x * 120)
                    };

                    foreach (IContainer container in stackList[x][y])
                    {
                        listBox.Items.Add(container);
                    }
                    listboxList.Add(listBox);
                    stackInfoLabelList.Add(label);
                }
            }
            foreach (ListBox listBox in listboxList)
            {
                Controls.Add(listBox);
            }

            foreach (Label label in stackInfoLabelList)
            {
                Controls.Add(label);
            }

            float totaalGewicht = ship.GewichtLinks() + ship.GewichtRechts();

            lbBalans.Text = "Balans" + (ship.GewichtLinks() / totaalGewicht) + "/" + (ship.GewichtRechts() / totaalGewicht);
        }