c#编写连连看-------第一天

来源:互联网 发布:四大粮商知乎 编辑:程序博客网 时间:2024/04/28 03:20

曾经在网上看过一个用JAVA编写的连连看,根据作者的思路,自己也实践了一遍,C#和JAVA差不多,现在想试着用C#编一遍,熟悉一下思路,进一步学习一下。特把此过程传到网上,一是记录一下整个过程,也为了督促自己坚持下去。

 

第一天

初步完成一个简单功能:将按钮按N*N排列,点击text相同的按钮,能够消去。

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

namespace lianliankanTest
{
    public partial class Form1 : Form
    {
        int last=0,now=0;                            //按钮的Tab键值
        Button[,] but;                                      //按钮数组
        public Form1()
        {                                              
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            but = new Button[5, 5]{{button1,button2,button3,button4,button5},
                                {button6,button7,button8,button9,button10},
                                {button11,button12,button13,button14,button15},
                                {button16,button17,button18,button19,button20},
                                {button21,button22,button23,button24,button25}};
            for (int i = 0; i < 5; i++)
                for (int j = 0; j < 5; j++)
                {
                    int k=i+j;
                    but[i, j].Location = new Point(i * 40, j * 40);                      //按钮布局
                    but[i, j].Text = k.ToString();                                                   //按钮赋不同的text
                    but[i, j].Click += new EventHandler(button_Click);         //每个按钮都加一个事件
                }

        }

        private void button_Click(object sender, EventArgs e)                   //处理点击按钮的事件
        {
            Button button = (Button)sender;
            now = button.TabIndex;
            if (last == now)                                                                     //第一次点击
                 return;
            int rowLast = last % 5;
            int colLast = last / 5;
            int rowNow = now % 5;
            int colNow = now / 5;
            this.label1.Text = last.ToString() + "  " + now.ToString() + "/n" + "rowlast:" + rowLast.ToString() + "collast" + colLast.ToString() + "/n" + "now:" + rowNow.ToString()+" "+colNow.ToString() ;
            if (this.but[colLast,rowLast].Text == this.but[colNow,rowNow].Text)             //注意:按钮排列的行和列与按钮数组中的下标正好相反
            {
                but[colNow, rowNow].Visible = false;                                    
                but[colLast, rowLast].Visible = false;
            }
            last = now;
        }
    }
}

 

 

原创粉丝点击