private void Form1_MouseUp(object sender, MouseEventArgs e) { if (running) { return; } mouseHeld = MouseHeldType.None; Invalidate(); }
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(); }