Esempio n. 1
0
        private void btnOpen_Click(object sender, EventArgs e)                      // Clique do botão de abrir arquivo
        {
            dgvCaminho.Enabled     = false;                                         // Desabilita o dgv de caminho, que se encontra vazio
            dgvCaminho.RowCount    = 0;                                             // Limpamos os dgvs
            dgvCaminho.ColumnCount = 1;
            dgvLabirinto.RowCount  = 0;

            dgvCaminho.Columns[0].HeaderText = "Saídas";

            if (dlgOpen.ShowDialog() == DialogResult.OK)                            // Aqui verifica-se se o usuário selecionou um arquivo
            {
                btnBuscar.Enabled = true;                                           // Se tiver selecionado, habilita o botão de busca
                labirinto         = new Labirinto(dlgOpen.FileName);                // Bem como instancia o objeto da classe Labirinto
                labirinto.Exibir(dgvLabirinto);                                     // E exibe a matriz confeccionada
            }
        }
Esempio n. 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            label4.Text = "Caminhos encontrados:";

            if (dlgAbrirArquivo.ShowDialog() == DialogResult.OK)
            {
                button2.Enabled = true;
                string nomeArq = dlgAbrirArquivo.FileName;
                dgvRun.Rows.Clear();
                dgvRun.Refresh();
                for (int i = 0; i < dgvLab.Columns.Count; i++)
                {
                    try
                    {
                        dgvLab.Columns.Clear();
                        dgvLab.Columns.RemoveAt(i);
                    }
                    catch (Exception) { }
                }
                LeitorDeArquivo leitor = new LeitorDeArquivo();
                try
                {
                    labirinto = new Labirinto(leitor.ReadFileAsCharTable(nomeArq));
                    for (int i = 0; i < labirinto.Matriz.GetLength(1); i++)
                    {
                        dgvLab.Columns.Add("Column" + i, "");
                        dgvLab.Columns[i].Width = 20;
                    }

                    for (int i = 0; i < labirinto.Matriz.GetLength(0); i++)
                    {
                        dgvLab.Rows.Add();
                        for (int j = 0; j < labirinto.Matriz.GetLength(1); j++)
                        {
                            if (labirinto.Matriz[i, j].Equals('#'))
                            {
                                Color c = new Color();
                                c = Color.FromArgb(50, 50, 50);
                                dgvLab.Rows[i].Cells[j].Style.BackColor = c;
                            }
                            else if (labirinto.Matriz[i, j].Equals('I'))
                            {
                                Color c = new Color();
                                c = Color.FromArgb(204, 25, 34);
                                dgvLab.Rows[i].Cells[j].Style.BackColor = c;
                            }
                            else if (labirinto.Matriz[i, j].Equals('S'))
                            {
                                Color c = new Color();
                                c = Color.FromArgb(17, 197, 74);
                                dgvLab.Rows[i].Cells[j].Style.BackColor = c;
                            }
                            else
                            {
                                Color c = new Color();
                                c = Color.FromArgb(220, 220, 220);
                                dgvLab.Rows[i].Cells[j].Style.BackColor = c;
                            }
                        }
                    }
                }
                catch (FileNotFoundException)
                {
                    MessageBox.Show("Escolha um arquivo, por favor.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (ArgumentOutOfRangeException)
                {
                    MessageBox.Show("O arquivo não é de texto (.txt)!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (Exception)
                {
                    MessageBox.Show("Ops! Algum erro inesperado aconteceu. Tente novamente mais tarde.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }