private void Button_Click_1(object sender, RoutedEventArgs e) { for (int count = 1; count <= quantity; count++) { if (((height > heightMain) && (height > widthMain)) || ((width > heightMain) && (width > widthMain))) { string large = height > width?height.ToString() : width.ToString(); MessageBox.Show(String.Format("One side of the rectangle == {0} is too large !", large)); this.heightField.Text = "0"; this.widthField.Text = "0"; this.quantityField.Text = "1"; break; } Surface rectangle = new Surface(); rectangle.Height = height; rectangle.Width = width; MyBoxes.Add(rectangle); } this.heightField.Text = "0"; this.widthField.Text = "0"; this.quantityField.Text = "1"; }
private void button1_Click(object sender, EventArgs e) { Surface surf = new Surface(); surf.ContainerHeight = height; surf.ContainerWidth = width; for (int i = 0; i < quantity; i++) { Rectangle f = new Rectangle(i + 1); // створюємо об’єкт типу Rectangle f.ShowDialog(); dict.Add(i + 1, f.MyMass); } foreach (KeyValuePair <int, double[]> keyValue in dict) { if (((keyValue.Value[0] > surf.ContainerHeight) && (keyValue.Value[0] > surf.ContainerWidth)) || ((keyValue.Value[1] > surf.ContainerHeight) && (keyValue.Value[1] > surf.ContainerWidth))) { MessageBox.Show(String.Format("One side of the rectangle № {0} is too large !", keyValue.Key.ToString())); dict.Clear(); return; } areaOfPieces += keyValue.Value[2]; } if (areaOfPieces > surf.MainSquare) { MessageBox.Show("The area of the pieces is larger than the surface area !"); dict.Clear(); return; } for (int i = 0; i < Math.Pow(2, quantity); i++) { MyBoxes.Clear(); string str = Convert.ToString(i, 2).PadLeft(quantity, '0'); for (int j = 0; j < quantity; j++) { MyBoxes.Add(new Surface { Height = dict[j + 1][0], Width = dict[j + 1][1] }); if (str[j] == '1') { double width = MyBoxes[j].Width; MyBoxes[j].Width = MyBoxes[j].Height; MyBoxes[j].Height = width; } } packer = new Packer(MyBoxes, surf.ContainerHeight, surf.ContainerWidth); resultStr += packer.TextResult; } Result result = new Result(resultStr); result.Show(); }