点击下落最简单的功能就可以 ,带点注释,谢谢。。。。。。。。。
1条回答
- Vincent_TT 2014-10-11 01:49关注
不会贴图...
界面就是一个form里一个大的mainPanel,然后这个Panel里有4*4的16个子Panel,初始化时随机4个数分别设置每一行中随机一个panel的背景色为灰色,然后最后一行添加了点击事件,点击白块时提示失败并初始化,点击灰色块时上面三行的灰色块下移,第一行再次随机一个Panel的背景色设置成灰色,以此反复。
功能是这样的,其他的地方按照你自己的想法去改吧。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace biecaibaikuai
{
public partial class Form1 : Form
{
#region 变量
private int firstRow;
private int secRow;
private int thrRow;
private int fourRow;
private Random rd = new Random();
#endregionpublic Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { init(); } #region 初始化 private void init() { // 设置所有panel背景色为白色 foreach (Control ctl in mainPanel.Controls) { ctl.BackColor = Color.White; } firstRow = rd.Next(1, 4);// 第一行随机数 secRow = rd.Next(1, 4);// 第二行随机数 thrRow = rd.Next(1, 4);// 第三行随机数 fourRow = rd.Next(1, 4);// 第四行随机数 this.Controls.Find("fPanel" + firstRow, true)[0].BackColor = Color.Gray;// 设置第一行随机一个panel背景色为灰色 this.Controls.Find("sPanel" + secRow, true)[0].BackColor = Color.Gray;// 设置第二行随机一个panel背景色为灰色 this.Controls.Find("tPanel" + thrRow, true)[0].BackColor = Color.Gray;// 设置第三行随机一个panel背景色为灰色 this.Controls.Find("foPanel" + fourRow, true)[0].BackColor = Color.Gray;// 设置第四行随机一个panel背景色为灰色 } #endregion #region 最后一行panel点击事件处理 private void foPanel1_Click(object sender, EventArgs e) { playGame((Panel)sender); } private void foPanel2_Click(object sender, EventArgs e) { playGame((Panel)sender); } private void foPanel3_Click(object sender, EventArgs e) { playGame((Panel)sender); } private void foPanel4_Click(object sender, EventArgs e) { playGame((Panel)sender); } #endregion #region 游戏逻辑处理 /// <summary> /// 游戏逻辑处理 /// </summary> /// <param name="pl">被点击的panel</param> private void playGame(Panel pl) { if (pl.BackColor != Color.Gray)// 点到白块 { MessageBox.Show("失败!"); init();// 重新初始化 } else { // 清空初始化设置的panel背景色 this.Controls.Find("fPanel" + firstRow, true)[0].BackColor = Color.White; this.Controls.Find("sPanel" + secRow, true)[0].BackColor = Color.White; this.Controls.Find("tPanel" + thrRow, true)[0].BackColor = Color.White; pl.BackColor = Color.White; // 之前的随机数按行下移 fourRow = thrRow; thrRow = secRow; secRow = firstRow; // 第一行再次随机生成一个数 firstRow = rd.Next(1, 4); // 再次设置panel的背景色 this.Controls.Find("fPanel" + firstRow, true)[0].BackColor = Color.Gray; this.Controls.Find("sPanel" + secRow, true)[0].BackColor = Color.Gray; this.Controls.Find("tPanel" + thrRow, true)[0].BackColor = Color.Gray; this.Controls.Find("foPanel" + fourRow, true)[0].BackColor = Color.Gray; } } #endregion }
}
解决 无用评论 打赏 举报