⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form2.cs

📁 C#写了一个扫雷小游戏
💻 CS
📖 第 1 页 / 共 2 页
字号:
                    {
                        return;
                    }

                    if (bd.State != BlockState.Open)
                    {
                        BlockGraphics.DrawBlock(CurrentX, CurrentY, BlockGraphics.BlankOpenMap);
                    }
                    LeftMouseDown = true;
                }
                //left-button and right-button were both pressed
                else
                {
                    LeftMouseDown = true;
                    foreach (BlockData bd1 in bd.BlockList)
                    {
                        if (bd1.State == BlockState.Closed)
                        {
                            BlockGraphics.DrawBlock(bd1.x, bd1.y, BlockGraphics.BlankOpenMap);
                        }
                    }
                }

            }
            else
            {
                //only the right-button was pressed
                if (!LeftMouseDown)
                {
                    RightMouseDown = true;
                    if (bd.State == BlockState.Open)
                    {
                        return;
                    }
                    if (bd.State == BlockState.Closed)
                    {
                        bd.State = BlockState.UserMine;
                        BlockGraphics.DrawBlock(CurrentX, CurrentY, BlockGraphics.UserMineMap);
                        Map.UserMineCount--;
                        textBox1.Text = Math.Max(Map.UserMineCount, 0).ToString();
                    }
                    else if (bd.State == BlockState.UserMine)
                    {
                        bd.State = BlockState.Closed;
                        BlockGraphics.DrawBlock(CurrentX, CurrentY, BlockGraphics.ClosedMap);
                        Map.UserMineCount++;
                        textBox1.Text = Math.Max(Map.UserMineCount, 0).ToString();
                    }

                }
                //left-button and right-button were both pressed
                else
                {
                    RightMouseDown = true;
                    foreach (BlockData bd1 in bd.BlockList)
                    {
                        if (bd1.State == BlockState.Closed)
                        {
                            BlockGraphics.DrawBlock(bd1.x, bd1.y, BlockGraphics.BlankOpenMap);
                        }
                    }
                }
            }
        }

        private void WinMine_MouseUp(object sender, MouseEventArgs e)
        {

            int x = e.X;
            int y = e.Y;
            x = x / Map.BlockWidth * Map.BlockWidth;
            y = y / Map.BlockWidth * Map.BlockWidth;
            BlockData bd = Map.GetBlock(CurrentX, CurrentY);
            //only left-button was pressed
            if (!RightMouseDown && LeftMouseDown)
            {
                if (x == CurrentX && y == CurrentY)
                {
                    Map.SingleClick(CurrentX, CurrentY);

                }
                else if (bd.State != BlockState.Open)
                {
                    BlockGraphics.DrawBlock(CurrentX, CurrentY, BlockGraphics.ClosedMap);
                }
                LeftMouseDown = false;
            }
            //left-button and right-button were both pressed
            else if (LeftMouseDown && RightMouseDown)
            {
                if (bd.State == BlockState.Closed)
                {
                    BlockGraphics.DrawBlock(bd.x, bd.y, BlockGraphics.ClosedMap);
                }
                else
                {
                    int sum = 0;
                    foreach (BlockData bd1 in bd.BlockList)
                    {
                        if (bd1.State == BlockState.UserMine)
                        {
                            sum++;
                        }
                    }
                    if (sum == bd.MineCount)
                    {
                        foreach (BlockData bd1 in bd.BlockList)
                        {
                            if (bd1.State != BlockState.UserMine)
                            {
                                Map.SingleClick(bd1.x, bd1.y);
                            }
                        }
                    }
                }
                foreach (BlockData bd1 in bd.BlockList)
                {
                    if (bd1.State == BlockState.Closed)
                    {
                        BlockGraphics.DrawBlock(bd1.x, bd1.y, BlockGraphics.ClosedMap);
                    }
                }
                //LeftMouseDown = false;

            }
            if (e.Button == MouseButtons.Right)
            {
                RightMouseDown = false;
            }
            else
            {
                LeftMouseDown = false;
            }
            if (Map.IsSuccessful())
            {
                Map.IsSuccess = true;
            }

        }
        private void 初级ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Map.RowCount = 9;
            Map.ColumnCount = 9;
            Map.MineNumber = 10;
            Map.Init();
            Restart();
        }

        private void 中级ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Map.RowCount = 16;
            Map.ColumnCount = 16;
            Map.MineNumber = 40;
            Map.Init();
            Restart();
        }

        private void 高级ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Map.RowCount = 16;
            Map.ColumnCount = 30;
            Map.MineNumber = 99;
            Map.Init();
            Restart();
        }

        private void 超高级ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Map.RowCount = 16;
            Map.ColumnCount = 30;
            Map.MineNumber = 120;
            Map.Init();
            Restart();
        }

        private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
        {

        }

        private void button2_Click_1(object sender, EventArgs e)
        {

        }

        private void Form2_SizeChanged(object sender, EventArgs e)
        {
            //BlockGraphics.MemImage = new Bitmap(pictureBox1.Width, pictureBox1.Height);
        }

        private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Map.Time++;
            textBox2.Text = Map.Time.ToString();
            if (Map.GameOver)
            {
                timer1.Enabled = false;
                //MessageBox.Show("Game Over");      
            }
            if (Map.IsSuccess)
            {
                timer1.Enabled = false;
                MessageBox.Show("You Win");
            }
        }

        private void button2_Click_2(object sender, EventArgs e)
        {
            Map.GameOver = true;
            Map.Showall();
            Map.DrawBlocks();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("QWKing版扫雷,Designed by qwking\r\nqq:83639234");
        }

        private void 开始ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Restart();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -