2014年12月19日 星期五

C# 陣列隨機亂數(十字變換)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        int width, height;
        string a;
        Button[,] buttons = new Button[10, 10];
        int[] array = new int[17];
     
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Instantiating all the buttons in the array

            button1.Text = "重新";

            for (int i = 0; i < 17; i++)
            {
                array[i] = i;
            }


            /*
            for (int j = 1; j < 10; j++)
            {
                buttons[1, j] = new Button();
                buttons[1, j].Location = new Point(50 * j, 50);
                buttons[1, j].Text = array[j].ToString();
                this.Controls.Add(buttons[1, j]);
            }
            */

            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    width = this.Size.Width;
                    height = this.Size.Height;
                    width = 50;
                    height = 50;
                    buttons[i, j] = new Button();
                    buttons[i, j].Location = new Point(j * 50, i * 50);
                    buttons[i, j].Size = new Size(width, height);
                    buttons[i,j].Text = (i*4+j).ToString();
                    this.Controls.Add(buttons[i, j]);
                    buttons[i,j].Click += new EventHandler(Button1_Click);
                }
            }

         
         
        }
        private void Button1_Click(object sender, EventArgs e)
        {
            /*
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    if (buttons[i, j].Text == "0")
                    {
                        MessageBox.Show("i=" + i + ",j=" + j + " " + buttons[i, j].Text);
                    }
                }


            }
            */
         
         
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    /*
                    if (sender == buttons[i, j])
                    {
                        MessageBox.Show("i=" + i + ",j=" + j + " " + buttons[i, j].Text);
                    }
                    */
                    if (i < 3)
                    {
                        if (sender == buttons[i + 1, j])
                        {
                            a = buttons[i + 1, j].Text;
                            buttons[i + 1, j].Text = buttons[i, j].Text;
                            buttons[i, j].Text = a;
                            //i = i + 1;
                        }
                    }
                 
                    if (i > 0 )
                    {
                        if (sender == buttons[i - 1, j])
                        {
                            a = buttons[i - 1, j].Text;
                            buttons[i - 1, j].Text = buttons[i, j].Text;
                            buttons[i, j].Text = a;
                            //i = i - 1;
                        }
                    }
                    if (j < 3)
                    {
                        if (sender == buttons[i, j+1])
                        {
                            a = buttons[i, j+1].Text;
                            buttons[i , j+1].Text = buttons[i, j].Text;
                            buttons[i, j].Text = a;
                            //j = j + 1;
                        }
                    }
                    if (j > 0)
                    {
                        if (sender == buttons[i, j - 1])
                        {
                            a = buttons[i, j - 1].Text;
                            buttons[i, j - 1].Text = buttons[i, j].Text;
                            buttons[i, j].Text = a;
                           // j = j - 1;
                        }
                    }
                }


            }
         

         



        }

        private void button1_Click(object sender, EventArgs e)
        {
            int d1, tmp, k;

            Random irand = new Random();
            d1 = irand.Next(1, 17);
            label1.Text = d1.ToString();


            for (int j = 1; j < 17; j++)
            {
                k = 16 - j + 1;
                tmp = array[d1];
                array[d1] = array[k];
                array[k] = tmp;
            }


            for (int j = 0; j < 4; j++)
            {
                for (int i = 0; i < 4; i++)
                {
                    width = this.Size.Width;
                    height = this.Size.Height;
                    width = 50;
                    height = 50;
                    //buttons[i, j] = new Button();
                    buttons[i, j].Location = new Point(j * 50, i * 50);
                    buttons[i, j].Size = new Size(width, height);
                    buttons[i, j].Text = array[i * 4 + j + 1].ToString();
                    this.Controls.Add(buttons[i, j]);
                }
            }






            //buttons[1, 1].Text = array[1].ToString();

            /*
            for (int j = 1; j < 10; j++)
            {
                //    buttons[1, j] = new Button();
                buttons[1, j].Location = new Point(50 * j, 50);
                buttons[1, j].Text = array[j].ToString();
                this.Controls.Add(buttons[1, j]);
            }
             */


            label2.Text = array[d1].ToString();

        }
    }
}

沒有留言:

張貼留言