2010年11月12日 星期五

2010 11/12 井字遊戲

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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        System.Windows.Forms.Button[] Button1;
        int[,] a = new int[4, 4];
        int bno,nobtpressed=0;
        int rdno;
        int[] recordbutn = new int[9] { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Button1 = new System.Windows.Forms.Button[9];
            for (int i = 0; i < 9; ++i)
            {
                Button1[i] = new Button();
                Button1[i].Size = new Size(50, 50);
                Button1[i].Click += new System.EventHandler(Button1_Click);
                this.Controls.Add(Button1[i]);
                if (i <= 2)
                    Button1[i].Location = new System.Drawing.Point(10 + i * 50, 0 );
                else if (i > 2 && i <= 5)
                    Button1[i].Location = new System.Drawing.Point(10 + (i - 3) * 50, 50 );
                else if (i > 5 && i <= 9)
                    Button1[i].Location = new System.Drawing.Point(10 + (i - 6) * 50, 100 );
                Button1[i].Text = "" + i;

              
              
               
               
            }

        }
        public void Button1_Click(object sender, EventArgs e)
        {
            // System.Windows.Forms.MessageBox.Show("You have clicked button " +
            //   ((System.Windows.Forms.Button)sender).Tag.ToString());
            //MessageBox.Show(Convert.ToString(((Button)sender).Text));
            String tnum = sender.ToString();
            int tlen = tnum.Length;
            String no = tnum.Substring(tlen - 1);
           
            int temp;
         
               
                for (int i = 0; i < 9; i++)
                {
                    if (Button1[i].Text == no)
                        // MessageBox.Show("" + no);
                        bno = i;
                }
                // MessageBox.Show(""+bno);
                switch (bno)
                {
                    case 0:
                        //MessageBox.Show("0");
                        if (Button1[0].Image != pictureBox2.Image && Button1[0].Image != pictureBox1.Image)
                        {
                            Button1[0].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;  
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[0];
                            recordbutn[0] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                        break;
                    case 1:
                        // MessageBox.Show("1");
                       
                       
                        if (Button1[1].Image != pictureBox2.Image && Button1[1].Image != pictureBox1.Image)
                        {
                            Button1[1].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[1];
                            recordbutn[1] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                       
                        break;
                    case 2:
                        // MessageBox.Show("2");
                       
                        if (Button1[2].Image != pictureBox2.Image && Button1[2].Image != pictureBox1.Image)
                        {
                            Button1[2].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[2];
                            recordbutn[2] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                       
                        break;
                    case 3:
                        //MessageBox.Show("3");
                       
                        if (Button1[3].Image != pictureBox2.Image && Button1[3].Image != pictureBox1.Image)
                        {
                            Button1[3].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[3];
                            recordbutn[3] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                       
                        break;
                    case 4:
                        //MessageBox.Show("4");
                       
                        if (Button1[4].Image != pictureBox2.Image && Button1[4].Image != pictureBox1.Image)
                        {
                            Button1[4].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[4];
                            recordbutn[4] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                       
                        break;
                    case 5:
                        // MessageBox.Show("5");
                      
                        if (Button1[5].Image != pictureBox2.Image && Button1[5].Image != pictureBox1.Image)
                        {
                            Button1[5].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[5];
                            recordbutn[5] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                       
                        break;
                    case 6:
                        //  MessageBox.Show("6");
                       
                        if (Button1[6].Image != pictureBox2.Image && Button1[6].Image != pictureBox1.Image)
                        {
                            Button1[6].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[6];
                            recordbutn[6] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                       
                        break;
                    case 7:
                        // MessageBox.Show("7");
                       
                        if (Button1[7].Image != pictureBox2.Image && Button1[7].Image != pictureBox1.Image)
                        {
                            Button1[7].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[7];
                            recordbutn[7] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                       
                        break;
                    case 8:
                        //  MessageBox.Show("8");
                       
                        if (Button1[8].Image != pictureBox2.Image && Button1[8].Image != pictureBox1.Image)
                        {
                            Button1[8].Image = pictureBox1.Image;
                            nobtpressed = nobtpressed + 1;
                            label2.Text = "" + nobtpressed;
                            temp = recordbutn[8];
                            recordbutn[8] = recordbutn[9 - nobtpressed];
                            recordbutn[9 - nobtpressed] = temp;
                            button2_Click(sender, e);
                        }
                        break;
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (nobtpressed < 8)
            {
                Random rd = new Random();
                int rdno = rd.Next(0, 9 - nobtpressed);
                label1.Text = "" + recordbutn[rdno];
                if (Button1[recordbutn[rdno]].Image != pictureBox2.Image && Button1[recordbutn[rdno]].Image != pictureBox1.Image)
                {
                    Button1[recordbutn[rdno]].Image = pictureBox2.Image;
                    nobtpressed = nobtpressed + 1;
                    label2.Text = "" + nobtpressed;
                    int temp = recordbutn[rdno];
                    recordbutn[rdno] = recordbutn[9 - nobtpressed];
                    recordbutn[9 - nobtpressed] = temp;
                }
                else
                {
                    button2_Click(sender, e);
                }
            }
            if (nobtpressed <= 9)
            {
                if (Button1[0].Image == pictureBox1.Image && Button1[1].Image == pictureBox1.Image && Button1[2].Image == pictureBox1.Image
                    || Button1[3].Image == pictureBox1.Image && Button1[4].Image == pictureBox1.Image && Button1[5].Image == pictureBox1.Image
                    || Button1[6].Image == pictureBox1.Image && Button1[7].Image == pictureBox1.Image && Button1[8].Image == pictureBox1.Image
                    || Button1[0].Image == pictureBox1.Image && Button1[3].Image == pictureBox1.Image && Button1[6].Image == pictureBox1.Image
                    || Button1[1].Image == pictureBox1.Image && Button1[4].Image == pictureBox1.Image && Button1[7].Image == pictureBox1.Image
                    || Button1[2].Image == pictureBox1.Image && Button1[5].Image == pictureBox1.Image && Button1[8].Image == pictureBox1.Image
                    || Button1[0].Image == pictureBox1.Image && Button1[4].Image == pictureBox1.Image && Button1[8].Image == pictureBox1.Image
                    || Button1[2].Image == pictureBox1.Image && Button1[4].Image == pictureBox1.Image && Button1[6].Image == pictureBox1.Image)
                {
                    MessageBox.Show("YOU WIN!!");
                }

                else if (Button1[0].Image == pictureBox2.Image && Button1[1].Image == pictureBox2.Image && Button1[2].Image == pictureBox2.Image
                    || Button1[3].Image == pictureBox2.Image && Button1[4].Image == pictureBox2.Image && Button1[5].Image == pictureBox2.Image
                    || Button1[6].Image == pictureBox2.Image && Button1[7].Image == pictureBox2.Image && Button1[8].Image == pictureBox2.Image
                    || Button1[0].Image == pictureBox2.Image && Button1[3].Image == pictureBox2.Image && Button1[6].Image == pictureBox2.Image
                    || Button1[1].Image == pictureBox2.Image && Button1[4].Image == pictureBox2.Image && Button1[7].Image == pictureBox2.Image
                    || Button1[2].Image == pictureBox2.Image && Button1[5].Image == pictureBox2.Image && Button1[8].Image == pictureBox2.Image
                    || Button1[0].Image == pictureBox2.Image && Button1[4].Image == pictureBox2.Image && Button1[8].Image == pictureBox2.Image
                    || Button1[2].Image == pictureBox2.Image && Button1[4].Image == pictureBox2.Image && Button1[6].Image == pictureBox2.Image)
                {
                    MessageBox.Show("電腦獲勝!!");
                }
                else if(nobtpressed==9)
                {
                    MessageBox.Show("平手");
                }
            }
        }
       
        private void button3_Click(object sender, EventArgs e)
        {
             if (MessageBox.Show("是否要重新開始遊戲?", "重新開始", MessageBoxButtons.YesNo,
                 MessageBoxIcon.Information, MessageBoxDefaultButton.Button1,
                 MessageBoxOptions.DefaultDesktopOnly) == DialogResult.Yes)
             {

                    System.Windows.Forms.Application.Restart();
             }
        }
    }
}
   

沒有留言:

張貼留言