拼数字游戏源代码如下: 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 NumberGame { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } Label[,] arrLbl = new Label[3, 3];//存放Label控件的二维数组 int unRow = 0, unCol = 0;//记录不可见Label的下标 bool playing = false;//是否正在游戏中 private void btnPlay_Click_1(object sender, EventArgs e) { //把九个Label控件装入二维数组中以便控制 arrLbl[0, 0] = label1; arrLbl[0, 1] = label2; arrLbl[0, 2] = label3; arrLbl[1, 0] = label4; arrLbl[1, 1] = label5; arrLbl[1, 2] = label6; arrLbl[2, 0] = label7; arrLbl[2, 1] = label8; arrLbl[2, 2] = label9; arrLbl[unRow, unCol].Visible = true;//防止2次单击开始游戏 int[] arrNum = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //将一位数组arrNum中的数字随机排列 Random rm = new Random();//初始化随机函数类 for (int i = 0; i < 8; i++) { int rmNum = rm.Next(i, 9);//随机数大于等于i,小于9 int temp = arrNum[i];//交换数组中2个元素的值 arrNum[i] = arrNum[rmNum]; arrNum[rmNum] = temp; } for (int i = 0; i < 9; i++) { //把一维数组的数字依次在二维数组的标签控件显示 arrLbl[i / 3, i % 3].Text = arrNum[i].ToString(); } int cover = rm.Next(0, 9);//生成一个随机数用于掩盖某个数字 unRow=cover/3;//转化为不可见标签的在二维数组中的行下标 unCol = cover % 3;//转化为列下标 arrLbl[unRow, unCol].Visible = false;//让该标签不可见 playing = true;//设置游戏进行中标记 } private void label5_Click(object sender, EventArgs e) { if (!playing)//如果游戏不在进行中 { return;//退出事件方法的执行 } int row = ((Label)sender).Top / 80;//计算点中标签的行下标 int col = ((Label)sender).Left / 80;//计算点中标签的列下标 if (Math.Abs(row - unRow)+Math.Abs(col-unCol) == 1) { //判断方块是否可以移动,如果可以则交换标签显示的数字 string temp = arrLbl[unRow, unCol].Text; arrLbl[unRow,unCol].Text=arrLbl[row, col].Text; arrLbl[row, col].Text = temp; arrLbl[unRow, unCol].Visible = true; arrLbl[row, col].Visible = false; unRow = row; //设置新的不可见标签下标值 unCol = col; } for (int i = 0; i < 9; i++) { //判断是否已成功排列数字 if(arrLbl[i/3,i%3].Text!=Convert.ToString(i+ 1)) { break; } if (i == 8) { arrLbl[unRow,unCol].Visible =true;//显示被掩盖数字 playing = false;//设置游戏结束标志 MessageBox.Show("恭喜你通过了游戏!", "消息对话框", } } } MessageBoxButtons.OK,MessageBoxIcon.Information); } } 本文来源:https://www.wddqw.com/doc/d6a996fd284ac850ad0242cf.html