示例#1
0
        private void tick_Tick(object sender, EventArgs e)
        {
            if (rbDFS.Checked)
            {
                P.Push(Algorithm.DFSNextStep(CurrentDFSNode.X, CurrentDFSNode.Y, g1.graph));
                CurrentDFSNode = P.Peek();

                if (CurrentDFSNode.X == -1 || CurrentDFSNode.Y == -1)
                {
                    tick.Enabled = false;
                    MessageBox.Show("Cilj!!" + frameNumber.ToString());
                }
                else if (CurrentDFSNode.X == -2 || CurrentDFSNode.Y == -2)
                {
                    while (P.Peek().X == -2)
                    {
                        P.Pop();
                    }
                    P.Pop();
                    if (P.Count == 0)
                    {
                        tick.Enabled = false;
                        MessageBox.Show("Fail");
                        return;
                    }
                    CurrentDFSNode = P.Peek();
                }
                g1.Invalidate();
            }
            frameNumber++;
        }