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(); } } }
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>(); }