Пример #1
0
        private void button3_Click(object sender, EventArgs e)
        {
            panel1.Visible = true;
            if (panel1.Controls.Count > 0)
            {
                panel1.Controls.Clear();
            }
            levelbox        = (int)Math.Pow(Convert.ToInt32(textBox1.Text), 2);
            sizeoflittlebox = Convert.ToInt32(pictureBox1.Width / Math.Sqrt(levelbox));

            panel1.Size = pictureBox1.Size;
            //panel1.Size = new Size(sizeoflittlebox, pictureBox1.Size.Height);
            pb   = new ModifPictureBox[levelbox];
            puzz = new Puzzles(new Bitmap(pictureBox1.Image), levelbox);


            for (int i = 0; i < levelbox; i++)
            {
                pb[i] = new ModifPictureBox();
                //pb[i].Name = "pictureBox" + i.ToString();
                pb[i].Index       = i;
                pb[i].Image       = puzz.elements[i].puzzleselem;
                pb[i].Size        = new Size(sizeoflittlebox, sizeoflittlebox);//puzz.elements[i].puzzleselem.Width, puzz.elements[i].puzzleselem.Height);
                pb[i].SizeMode    = PictureBoxSizeMode.Zoom;
                pb[i].BorderStyle = BorderStyle.Fixed3D;
            }
            shuffle(ref pb);


            ai(ref pb);
            for (int i = 0; i < levelbox; i++)
            {
                panel1.Controls.Add(pb[i]);
            }
        }
Пример #2
0
        private void shuffle(ref ModifPictureBox[] array)
        {
            Random rng = new Random();
            int    n   = array.Length;

            while (n > 1)
            {
                int k = rng.Next(n);
                n--;
                ModifPictureBox temp = array[n];
                array[n] = array[k];
                array[k] = temp;
            }
        }