示例#1
0
        private void btnEncontrar_Click(object sender, EventArgs e)
        {
            if (lab == null)
            {
                MessageBox.Show("Escolha um arquivo!");
            }
            else
            {
                lbCaminhos.Text = "Caminhos encontrados";
                dgvLabirinto.Rows.Clear();
                dgvLabirinto.Columns.Clear();
                labClone.ExibirLabirinto(dgvLabirinto);
                Thread.Sleep(500);
                caminhos = new PilhaLista <PilhaLista <Movimento> >();
                PilhaLista <Movimento> aux = new PilhaLista <Movimento>();
                caminhos = lab.BuscarCaminho(dgvLabirinto, ref caminhos, aux);
                dgvCaminhos.Rows.Clear();

                if (caminhos.GetQtd() > 0)
                {
                    MessageBox.Show("Saída encontrada! |" + " Nº de soluções: " + caminhos.GetQtd());
                    lbCaminhos.Text = "Caminhos encontrados: " + caminhos.GetQtd();
                }
                else
                {
                    MessageBox.Show("Sem solução!");
                }

                if (caminhos.GetQtd() > 0)
                {
                    ExibirCaminhos();
                }
            }
        }
示例#2
0
        private void ExibirUmCaminho(PilhaLista <Movimento> umCaminho)
        {
            NoLista <Movimento> aux = umCaminho.Inicio;

            while (aux != null)
            {
                dgvLabirinto[aux.Info.Coluna, aux.Info.Linha].Style.BackColor = Color.Green;
                dgvLabirinto.CurrentCell = dgvLabirinto[aux.Info.Coluna, aux.Info.Linha];
                dgvLabirinto.Refresh();
                Thread.Sleep(800);
                aux = aux.Prox;
            }
        }
 public Caminho()
 {
     this.posicoes = new PilhaLista <Movimento>();
 }