Пример #1
0
        private void btnCargarArch_Click(object sender, EventArgs e)
        {
            txtNArch.Text = txtNArch.Text.ToUpper();
            if (txtNArch.Text != "")
            {
                try
                {
                    if (File.Exists(txtNArch.Text))
                    {
                        txtN.Text          = "";
                        txtM.Text          = "";
                        txtFilaJ.Text      = "";
                        txtFilaT.Text      = "";
                        txtFilaOID.Text    = "";
                        txtFilaOSI.Text    = "";
                        txtColumnaJ.Text   = "";
                        txtColumnaT.Text   = "";
                        txtColumnaOID.Text = "";
                        txtColumnaOSI.Text = "";
                        int erarch = obj.leerArchivoIN(txtNArch.Text);
                        if (erarch == -1)
                        {
                            char[] sep = txtNArch.Text.ToCharArray();
                            int    er  = obj.crearArchivoOUT(int.Parse(sep[3].ToString()));
                            if (er == -1)
                            {
                                txtNArch.ReadOnly     = true;
                                btnCargarArch.Enabled = false;
                                btnGenEsp.Enabled     = true;
                                archn = true;
                                List <string> caminos = obj.generarCaminos();
                                if (obj.objetivo)
                                {
                                    MessageBox.Show("Se encontraron " + caminos.Count.ToString() + " caminos.", "Caminos generados", MessageBoxButtons.OK);
                                }
                                else
                                {
                                    MessageBox.Show("No se encontraron caminos.", "Objetivo inalcanzable", MessageBoxButtons.OK);
                                }
                                frmCaminoGráfico frm = new frmCaminoGráfico(obj.espacio, caminos);
                                frm.Show();
                            }
                            else
                            {
                                string error = "";
                                switch (er)
                                {
                                case 0:
                                    error = "M o N (o ambas) son igual a 0";
                                    break;

                                case 1:
                                    error = "Tom o Jerry no se encuentran en coordenadas válidas de la superficie de la casa.";
                                    break;

                                case 2:
                                    error = "Tom y Jerry están en la misma casilla.";
                                    break;

                                case 3:
                                    error = "Algún obstáculo no está situado en coordenadas válidas de la superficie.";
                                    break;

                                case 4:
                                    error = "Los vértices que representan un obstáculo no cumplen una relación válida entre sí.";
                                    break;

                                case 5:
                                    error = "Dos o más obstáculos se solapan.";
                                    break;

                                case 6:
                                    error = "Tom o Jerry están en una casilla ocupada por un obstáculo.";
                                    break;
                                }
                                MessageBox.Show("Error " + er.ToString() + "\n" + error, "Error en " + txtNArch.Text, MessageBoxButtons.OK);
                            }
                        }
                        else if (erarch == 0)
                        {
                            MessageBox.Show("No se localizó el archivo", "Error en el archivo", MessageBoxButtons.OK);
                        }
                        else
                        {
                            MessageBox.Show("No se pudo leer el archivo correctamente.", "Archivo dañado", MessageBoxButtons.OK);
                        }
                    }
                    else
                    {
                        MessageBox.Show("El nombre introducido no coincide con ningun archivo existente.", "No se encontró el archivo", MessageBoxButtons.OK);
                    }
                }
                catch
                {
                    MessageBox.Show("No se pudo leer ni generar el nuevo archivo .RES", "Error", MessageBoxButtons.OK);
                }
            }
            else
            {
                MessageBox.Show("Debes introducir el nombre del archivo.", "No se pudo completar la operación", MessageBoxButtons.OK);
            }
        }
Пример #2
0
        private void btnGenEsp_Click(object sender, EventArgs e)
        {
            if (archn)
            {
                DialogResult result = MessageBox.Show("Se generarán nuevos archivos ¿De aucerdo?", "¿Continuar?", MessageBoxButtons.YesNo);
                if (result == DialogResult.No)
                {
                    return;
                }
            }
            int narch  = obj.crearArchivoIN();
            int erarch = obj.leerArchivoIN("TOM" + narch.ToString() + ".DAT");

            if (erarch == -1)
            {
                int er = obj.crearArchivoOUT(narch);
                if (er == -1)
                {
                    List <string> caminos = obj.generarCaminos();
                    if (obj.objetivo)
                    {
                        MessageBox.Show("Se generó TOM" + narch + ".DAT y TOM" + narch + ".RES correctamente.\n" + "Se encontraron " + caminos.Count.ToString() + " caminos.", "Caminos generados", MessageBoxButtons.OK);
                    }
                    else
                    {
                        MessageBox.Show("Se generó " + narch + " correctamente.\n" + "No se encontraron caminos.", "Objetivo inalcanzable", MessageBoxButtons.OK);
                    }
                    frmCaminoGráfico frm = new frmCaminoGráfico(obj.espacio, caminos);
                    frm.Show();
                }
                else
                {
                    string error = "";
                    switch (er)
                    {
                    case 0:
                        error = "M o N (o ambas) son igual a 0";
                        break;

                    case 1:
                        error = "Tom o Jerry no se encuentran en coordenadas válidas de la superficie de la casa.";
                        break;

                    case 2:
                        error = "Tom y Jerry están en la misma casilla.";
                        break;

                    case 3:
                        error = "Algún obstáculo no está situado en coordenadas válidas de la superficie.";
                        break;

                    case 4:
                        error = "Los vértices que representan un obstáculo no cumplen una relación válida entre sí.";
                        break;

                    case 5:
                        error = "Dos o más obstáculos se solapan.";
                        break;

                    case 6:
                        error = "Tom o Jerry están en una casilla ocupada por un obstáculo.";
                        break;
                    }
                    MessageBox.Show("Error " + er.ToString() + "\n" + error, "Error en los datos", MessageBoxButtons.OK);
                }
            }
            else if (erarch == 0)
            {
                MessageBox.Show("No se localizó el archivo", "Error en el archivo", MessageBoxButtons.OK);
            }
            else
            {
                MessageBox.Show("No se pudo leer el archivo correctamente.", "Archivo dañado", MessageBoxButtons.OK);
            }
        }