Example #1
0
 private void Form1_MouseUp(object sender, MouseEventArgs e)
 {
     if (running)
     {
         return;
     }
     mouseHeld = MouseHeldType.None;
     Invalidate();
 }
Example #2
0
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (running)
            {
                return;
            }
            int x = (e.X - 150) / 16;
            int y = e.Y / 16;

            if (x >= XSize || y >= YSize || x < 0 || y < 0)
            {
                return;
            }
            if (x == startX && y == startY)
            {
                mouseHeld = MouseHeldType.Start;
                return;
            }
            if (x == endX && y == endY)
            {
                mouseHeld = MouseHeldType.End;
                return;
            }
            if (x >= XSize || y >= YSize || x < 0 || y < 0)
            {
                return;
            }
            if (!HigherCost)
            {
                if (field[x, y] == 1)
                {
                    mouseHeld = MouseHeldType.Empty;
                }
                else
                {
                    mouseHeld = MouseHeldType.Wall;
                }
            }
            else
            {
                if (e.Button == MouseButtons.Right)
                {
                    if (field[x, y] == 2)
                    {
                        mouseHeld = MouseHeldType.Empty;
                    }
                    else
                    {
                        mouseHeld = MouseHeldType.Cost;
                    }
                }
                else
                {
                    if (field[x, y] == 1)
                    {
                        mouseHeld = MouseHeldType.Empty;
                    }
                    else
                    {
                        mouseHeld = MouseHeldType.Wall;
                    }
                }
            }
            field[x, y] = (int)mouseHeld;
            path.Clear();
            OpenSet = new PriorityQueue <Cell>();
            Previous.Clear();
            TotalCost.Clear();
            Invalidate();
        }