void 修改区块当前外观(区块状态 当前外观) { System.Drawing.Image img; img = null; switch (当前外观) { case 区块状态.未知: img = Properties.Resources.n; break; case 区块状态.爆炸: img = Properties.Resources.c; break; case 区块状态.标记: img = Properties.Resources.f; break; case 区块状态.可疑: img = Properties.Resources.q; break; default: img = 设置区块外观(); break; } this.Image = img; }
void 初始化地雷(Boolean 是否是地雷, 雷场 雷场) { 区块._所属雷场 = 雷场; _is地雷 = 是否是地雷; this.MouseDown += 处理鼠标被点击的方法; this.Size = new System.Drawing.Size(_地雷宽度, _宽); 当前状态 = 区块状态.未知; }
void 处理鼠标被点击的方法(object sender, System.Windows.Forms.MouseEventArgs e) { if (游戏是否结束) { return; } //改变当前方块状态 switch (e.Button) { case System.Windows.Forms.MouseButtons.Left: if (_当前状态 == 区块状态.未知) { 当前状态 = _is地雷 ? 区块状态.爆炸 : 区块状态.安全; } else if (_当前状态 == 区块状态.安全) { //快速开辟安全区 快速开辟安全区(_在雷场中的行位置, _在雷场中的列位置); } break; case System.Windows.Forms.MouseButtons.Right: if (_当前状态 == 区块状态.未知) { 当前状态 = 区块状态.标记; 修改周围区块的已标记数量(_在雷场中的行位置, _在雷场中的列位置, true); } else if (_当前状态 == 区块状态.标记) { 当前状态 = 区块状态.可疑; 修改周围区块的已标记数量(_在雷场中的行位置, _在雷场中的列位置, false); } else if (_当前状态 == 区块状态.可疑) { 当前状态 = 区块状态.未知; } break; default: break; } }