扫雷的部分代码 求注释 能写多少写多少(手里就200分..希望别嫌少)

来源:百度知道 编辑:UC知道 时间:2024/06/23 11:58:08
private void WinMine_MouseDown(object sender, MouseEventArgs e)// 当在游戏上按下键时候所发生的一切
{
if (Map.GameOver)
{
Map.Showall();
Map.DrawBlocks();
return;
}
CurrentX = e.X;
CurrentY = e.Y;
CurrentX = CurrentX / Map.BlockWidth * Map.BlockWidth;
CurrentY = CurrentY / Map.BlockWidth * Map.BlockWidth;
BlockData bd = Map.GetBlock(CurrentX, CurrentY);
if (bd == null)
{
return;
}
//如果按下左键
if (e.Button == MouseButtons.Left)
{
//只按左键
if (!RightMouseDown)
{
if (bd.State == BlockState.UserMine)
{
return;
}
<

我不太懂

不懂!关注中...

不太懂你的意思
是你在游戏是的破译的还是什么的

你要问的是什么啊?

private void WinMine_MouseDown(object sender, MouseEventArgs e)// 当在游戏上按下键时候所发生的一切
{
if (Map.GameOver) //如果游戏结束
{
Map.Showall();
Map.DrawBlocks();//显示雷和数字
return;
}
//如果没有结束
CurrentX = e.X; //X=鼠标X坐标
CurrentY = e.Y; //同上,Y坐标
CurrentX = CurrentX / Map.BlockWidth * Map.BlockWidth; //计算所点的格子在第几列
CurrentY = CurrentY / Map.BlockWidth * Map.BlockWidth; //计算行
BlockData bd = Map.GetBlock(CurrentX, CurrentY); //实例化自定义类,估计是格子的类,map应该是整个的类,getblock应该是一个根据x,y获取格子类的方法

if (bd == null) //没有点到格子的话返回
{
return;
}
//如果按下左键
if (e.Button == MouseButtons.Left)
{
//只按左键
if (!RightMouseDown)
{
if (bd.State == BlockState.UserMine) 如果格子上有旗帜,也就是用户做了标记的话,返回
{
return;
}

if (bd.State != BlockState.Open) //如果格子没有被打开,打开他
{
BlockGraphics.DrawBlock(CurrentX, Cu