public void destacarCaminho(int caminhoIndice, DataGridView dgvLabirinto) // função para destacar um caminho específico { PilhaLista <Position> caminho = (PilhaLista <Position>)caminhos[caminhoIndice].Clone(); // clona o caminho específico while (!caminho.EstaVazia) // enquanto a pilha não estiver vazia { Position p = caminho.Desempilhar().Clone(); // pega a última posição da pilha int[] coordenadas = p.getPosition(); // vetor de string com as coordenadas da posição dgvLabirinto[coordenadas[0], coordenadas[1]].Style.BackColor = Color.Green; // muda a cor de fundo da célula } }
public void mostrarCaminhos(DataGridView dgvCaminho) // função para mostrar os caminhos no DataGridView da direita { //dgvCaminho.RowCount = 10; dgvCaminho.ColumnCount = 300; string[] caminhosEncontrados; foreach (PilhaLista <Position> caminho in caminhos) // para cada pilha de caminho na lista de caminhos { PilhaLista <Position> caminhoClone = (PilhaLista <Position>)caminho.Clone(); // cria um clone do caminho caminhosEncontrados = new string[caminhoClone.Tamanho]; int cont = 0; while (!caminhoClone.EstaVazia) // enquanto a pilha do caminho não estiver vazia { Position p = caminhoClone.Desempilhar(); // pega o último caminho da pilha caminhosEncontrados[cont] = "Foi para (" + p.getPosition()[0] + ", " + p.getPosition()[1] + ")"; cont++; } dgvCaminho.Rows.Add(caminhosEncontrados); // adiciona o vetor de string com caminho para o DatGridView da direita } dgvCaminho.Refresh(); // atualiza o DatGridView da direita //MessageBox.Show("Caminhos listados."); }