Esempio n. 1
0
 public static void ImprimirAnimais()
 {
     foreach (Animais animal in ListaAnimais)
     {
         Console.WriteLine(animal.ImprimirConsola());
     }
     Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
     Console.ReadLine();
     Console.Clear();
     MainClass.Menu();
 }
Esempio n. 2
0
        public static void EliminarAnimal()
        {
            int    indexArea = 0;
            string animal;

            do
            {
                do
                {
                    Console.WriteLine("INDIQUE O ANIMAL A ELIMINAR");
                    animal = Console.ReadLine();
                    try
                    {
                        foreach (char c in animal)
                        {
                            if (char.IsDigit(c))
                            {
                                int.TryParse(animal, out indexArea);
                                animal = ListaAnimais[indexArea - 1].getNomeAnimal();
                            }
                        }
                    }
                    catch
                    {
                        Console.WriteLine("O ANIMAL NÃO SE ENCONTRA NA AREAS DA LISTA");
                    }
                } while (!verificaNomeNaLista(animal));

                if (verificaNomeNaLista(animal))
                {
                    foreach (Animais a in ListaAnimais)
                    {
                        string nome = a.getNomeAnimal();
                        if (nome == animal)
                        {
                            ListaAnimais.Remove(a);
                            Console.WriteLine("ANIMAL APAGADO DO ZOO");
                            Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                            Console.ReadLine();
                            Console.Clear();
                            MainClass.Menu();
                        }
                    }
                }
                else
                {
                    Console.WriteLine("O ANIMAL NAO SE ENCONTRA NA LISTA");
                }
            } while (!verificaNomeNaLista(animal));
        }//FIM ELIMINAR ANIMAL
        }//FIM ADD ESPECIE

        public static void ApagarEspecie()
        {
            if (ListaEspecies.Count <= 0)
            {
                Console.WriteLine("NAO EXISTEM ESPECIES NA LISTA");
                Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                Console.ReadLine();
                Console.Clear();
                MainClass.Menu();
            }
            else
            {
                string especie;
                do
                {
                    Console.WriteLine("QUAL A ESPECIE QUE DESEJA APAGAR?");
                    especie = Console.ReadLine();
                    if (verificaEspecieExiste(especie))
                    {
                        foreach (Especies e in ListaEspecies)
                        {
                            string especieLista = e.GetID();
                            if (especieLista == especie)
                            {
                                if (GestorAnimais.verificaEspecie(especie))
                                {
                                    Console.WriteLine("EXISTEM ANIMAIS DESTA ESPECIE, A ESPECIE NAO PODE SER APAGADA");
                                    break;
                                }
                                else
                                {
                                    ListaEspecies.Remove(e);
                                    Console.WriteLine("ESPECIE REMOVIDA COM SUCESSO");
                                    Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                                    Console.ReadLine();
                                    Console.Clear();
                                    MainClass.Menu();
                                }
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("NAO EXISTE ESSA ESPECIE NA LISTA DE ESPECIES");
                    }
                } while (!verificaEspecieExiste(especie));
            }
        }//FIM APAGAR ESPECIE
Esempio n. 4
0
        }//Fim FicheiroAreas

        //Imprime Areas do Zoo na Consola=======================================
        public static void ImprimirAreas()
        {
            Console.WriteLine("-----------------------------------------------------------------");
            Console.WriteLine(string.Format("{0,7} | {1,-15} | {2,6} | {3,7} | {4,-20} ", "ID", "HABITATE", "CAPAC.", "N.FRONT", "FRONTEIRAS"));
            Console.WriteLine("-----------------------------------------------------------------");

            foreach (AreasDoZoo area in ListaAreasDoZoo)
            {
                Console.WriteLine(area.ReturnAreasConsola());
            }
            Console.WriteLine("-----------------------------------------------------------------");

            Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
            Console.ReadLine();
            Console.Clear();
            MainClass.Menu();
        }
 public static void ImprimirEspecies()
 {
     if (ListaEspecies.Count <= 0)
     {
         Console.WriteLine("NAO EXISTEM ESPECIES NA LISTA");
         Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
         Console.ReadLine();
         Console.Clear();
         MainClass.Menu();
     }
     else
     {
         foreach (Especies e in ListaEspecies)
         {
             Console.WriteLine(e.ImprimirEspecie());
         }
         Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
         Console.ReadLine();
         Console.Clear();
         MainClass.Menu();
     }
 }
Esempio n. 6
0
 public static void getEspecie()
 {
     if (ListaAnimais.Count <= 0)
     {
         Console.WriteLine("NAO EXISTEM ANIMAIS NA LISTA");
         Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
         Console.ReadLine();
         Console.Clear();
         MainClass.Menu();
     }
     else
     {
         foreach (Animais a in ListaAnimais)
         {
             string especieDoAnimal = a.getEspecieAnimal();
             GestorEspecies.ImprimeEspecie(especieDoAnimal);
         }
         Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
         Console.ReadLine();
         Console.Clear();
         MainClass.Menu();
     }
 }
        public static void CriarEspecie()
        {
            bool   existe = false;
            string especie;

            do
            {
                do
                {
                    Console.WriteLine("INSIRA O NOME DA ESPECIE");
                    especie = Console.ReadLine();
                    existe  = false;
                    foreach (char c in especie)
                    {
                        if (char.IsDigit(c) || char.IsSymbol(c) || char.IsPunctuation(c) || especie.Length < 1)
                        {
                            Console.WriteLine("O nome nao pode conter digitos ou caracteres especiais");
                            existe = true;
                            break;
                        }
                    }
                } while (existe);


                foreach (Especies nomeEspecie in ListaEspecies)
                {
                    existe = false;
                    if (nomeEspecie.GetID() == especie)
                    {
                        Console.WriteLine("ESSA ESPECIE JA EXISTE NA LISTA DE ESPECIES");
                        existe = true;
                        break;
                    }
                }
            } while (existe);


            Habitates nHabitate;
            char      valor = ' ';

            EspecieHabitates = new List <Habitates>();
            do
            {
                if (EspecieHabitates.Count < Enum.GetValues(typeof(Habitates)).Length)
                {
                    Console.WriteLine("INSIRA O HABITATE IDEAL PARA ESTA ESPÉCIE\n");
                    Enum.TryParse(Console.ReadLine(), out nHabitate);


                    if (nHabitate <= 0 || ((int)(nHabitate)) > Enum.GetValues(typeof(Habitates)).Length)
                    {
                        Console.WriteLine("O HABITATE NAO ESTA DISPONIVEL NA LISTA DE HABITARES");
                    }

                    else if (EspecieHabitates.Contains(nHabitate))
                    {
                        Console.WriteLine("O HABITATE JA EXISTE NA LISTA DE HABITATES DESTA ESPECIE");
                    }
                    else
                    {
                        EspecieHabitates.Add(nHabitate);
                        Console.WriteLine("O HABITATE FOI ADICIONADO AOS HABITATES DESTA ESPECIE\n");
                        if (EspecieHabitates.Count < Enum.GetValues(typeof(Habitates)).Length)
                        {
                            Console.WriteLine("DESEJA ADICIONAR MAIS HABITATES A ESTA ESPECIE? y/n");
                        }
                        else
                        {
                            Especies novaEspecie = new Especies(especie, EspecieHabitates);
                            ListaEspecies.Add(novaEspecie);
                            Console.WriteLine("NAO EXISTEM MAIS HABITATES DISPONIVEIS NA LISTA");
                            Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                        do
                        {
                            char.TryParse(Console.ReadLine().ToLower(), out valor);

                            if (valor == 'n')
                            {
                                Especies novaEspecie = new Especies(especie, EspecieHabitates);
                                ListaEspecies.Add(novaEspecie);
                                Console.WriteLine("A NOVA ESPECIE FOI ADICIONADA COM SUCESSO");
                                Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                                Console.ReadLine();
                                Console.Clear();
                                MainClass.Menu();
                            }
                            else if (valor != 'n' && valor != 'y')
                            {
                                Console.WriteLine("VALOR INVALIDO\n" +
                                                  "ESCOLHA 'y' - YES | 'n' - NO");
                            }
                        } while (valor != 'n' && valor != 'y');
                    }
                }
                else
                {
                    Console.WriteLine("PARA CRIAR UMA NOVA ESPECIE NECESSITA QUE EXISTAM HABITATES");
                    break;
                }
            } while (valor == 'y');
        }//FIM CRIAR ESPECIES
        }//FIM APAGAR ESPECIE

        public static void ApagarHabitateEspecie()
        {
            if (ListaEspecies.Count <= 0)
            {
                Console.WriteLine("NAO EXISTEM ESPECIES NA LISTA");
                Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                Console.ReadLine();
                Console.Clear();
                MainClass.Menu();
            }
            else
            {
                string especie;
                int    indexArea;

                do
                {
                    Console.WriteLine("INSIRA O NOME DA ESPECIE");
                    especie = Console.ReadLine();
                    try
                    {
                        foreach (char c in especie)
                        {
                            if (char.IsDigit(c))
                            {
                                int.TryParse(especie, out indexArea);
                                especie = ListaEspecies[indexArea - 1].GetID();
                            }
                        }
                    }
                    catch
                    {
                        Console.WriteLine("A ESPECIE NAO SE ENCONTRA NA LISTA");
                    }
                    if (!verificaEspecieExiste(especie) && !int.TryParse(especie, out indexArea))
                    {
                        Console.WriteLine("A ESPECIE NAO SE ENCONTRA NA LISTA");
                    }
                } while (!verificaEspecieExiste(especie));

                Habitates nHabitate;
                do
                {
                    Console.WriteLine("QUAL O HABITATE QUE DESEJA APAGAR?");
                    Enum.TryParse(Console.ReadLine(), out nHabitate);
                    if (((int)(nHabitate)) < Enum.GetValues(typeof(Habitates)).Length)
                    {
                        if (verificaEspecieHabitateExiste(especie, nHabitate.ToString()))
                        {
                            if (GestorAnimais.verificaEspecie(especie))
                            {
                                Console.WriteLine("ESSE HABITATE TEM UM ANIMAL ASSOCIADO");
                                break;
                            }
                            else
                            {
                                foreach (Especies e in ListaEspecies)
                                {
                                    if (e.GetID() == especie)
                                    {
                                        ApagaHabitate(nHabitate);
                                        Console.WriteLine("HABITATE APAGADO");
                                        Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                                        Console.ReadLine();
                                        Console.Clear();
                                        MainClass.Menu();
                                    }
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("ESTA ESPECIE NAO TEM ESTE HABITATE");
                        }
                    }
                    else
                    {
                        Console.WriteLine("O HABITATE NAO EXISTE");
                    }
                } while (((int)(nHabitate)) > Enum.GetValues(typeof(Habitates)).Length || !(verificaEspecieHabitateExiste(especie, nHabitate.ToString())));
            }
        }//FIM APAGAR HABITATE ESPECIE
        }//FIM CRIAR ESPECIES

        public static void addHabitate()
        {
            if (ListaEspecies.Count <= 0)
            {
                Console.WriteLine("NAO EXISTEM ESPECIES NA LISTA");
                Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                Console.ReadLine();
                Console.Clear();
                MainClass.Menu();
            }
            else
            {
                int indexEspecie;

                do
                {
                    Console.WriteLine("ESCOLHA A ESPECIE QUE DESEJA ADICIONAR UM HABITATE");
                    int.TryParse(Console.ReadLine(), out indexEspecie);

                    if (indexEspecie > ListaEspecies.Count || indexEspecie <= 0)
                    {
                        Console.WriteLine("ESSA ESPECIE NAO EXISTE NO ZOO");
                    }
                    else
                    {
                        Habitates nHabitate;
                        char      valor = ' ';
                        EspecieHabitates = new List <Habitates>();
                        do
                        {
                            Console.WriteLine("INSIRA O HABITATE IDEAL PARA ESTA ESPÉCIE\n");
                            Enum.TryParse(Console.ReadLine(), out nHabitate);


                            if (nHabitate <= 0 || ((int)(nHabitate)) > Enum.GetValues(typeof(Habitates)).Length)
                            {
                                Console.WriteLine("O HABITATE NAO ESTA DISPONIVEL NA LISTA DE HABITARES");
                            }

                            else if (EspecieHabitates.Contains(nHabitate))
                            {
                                Console.WriteLine("O HABITATE JA EXISTE NA LISTA DE HABITATES DESTA ESPECIE");
                            }
                            else
                            {
                                EspecieHabitates.Add(nHabitate);
                                Console.WriteLine("O HABITATE FOI ADICIONADO AOS HABITATES DESTA ESPECIE\n" +
                                                  "DESEJA ADICIONAR MAIS HABITATES A ESTA ESPECIE? y/n");
                                do
                                {
                                    char.TryParse(Console.ReadLine().ToLower(), out valor);

                                    if (valor == 'n')
                                    {
                                        foreach (Especies e in ListaEspecies)
                                        {
                                            if (e.GetID() == ListaEspecies[indexEspecie - 1].GetID())
                                            {
                                                e.AdicionaHabitat(EspecieHabitates);
                                            }
                                        }
                                        Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                                        Console.ReadLine();
                                        Console.Clear();
                                        MainClass.Menu();
                                    }
                                    else if (valor != 'n' && valor != 'y')
                                    {
                                        Console.WriteLine("VALOR INVALIDO\n" +
                                                          "ESCOLHA 'y' - YES | 'n' - NO");
                                    }
                                } while (valor != 'n' && valor != 'y');
                            }
                        } while (((int)(nHabitate)) > Enum.GetValues(typeof(Habitates)).Length || valor == 'y');
                    }
                } while (indexEspecie > ListaEspecies.Count || indexEspecie <= 0);
            }
        }//FIM ADD ESPECIE
Esempio n. 10
0
        public static void CriarAnimal()
        {
            if (GestorEspecies.ListaVazia())
            {
                Console.WriteLine("AINDA NAO NENHUMA ESPECIE CRIADA, PARA QUE POSSA CRIAR ANIMAL");
                Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                Console.ReadLine();
                Console.Clear();
                MainClass.Menu();
            }
            else
            {
                string nomeAnimal;
                ListaProgenitores = new List <string>();
                ListaFilhos       = new List <string>();
                do
                {
                    Console.WriteLine("INSIRA O NOME DO ANIMAL");
                    nomeAnimal = Console.ReadLine();
                    if (nomeAnimal.Length < 1)
                    {
                        Console.WriteLine("INSIRA UM NOME PARA O ANIMAL");
                    }
                    else
                    {
                        if (verificaNomeNaLista(nomeAnimal))
                        {
                            Console.WriteLine("JA EXISTE UM ANIMAL COM O MESMO NOME");
                        }
                    }
                } while (verificaNomeNaLista(nomeAnimal) || nomeAnimal.Length < 1);

                int peso;
                do
                {
                    Console.WriteLine("INDIQUE O PESO DO ANIMAL");
                    int.TryParse(Console.ReadLine(), out peso);

                    if (peso <= 0)
                    {
                        Console.WriteLine("PESO INVÁLIDO");
                    }
                } while (peso <= 0);


                string especie;
                do
                {
                    Console.WriteLine("INDIQUE A ESPECIE DESTE ANIMAL");
                    especie = Console.ReadLine();
                    if (!GestorEspecies.verificaEspecieExiste(especie))
                    {
                        Console.WriteLine("A ESPECIE NãO EXISTE");
                    }
                } while (!GestorEspecies.verificaEspecieExiste(especie));

                string localizacao;
                bool   verificaArea = true;
                do
                {
                    Console.WriteLine("INDIQUE A AREA PARA ESTE ANIMAL");
                    localizacao = Console.ReadLine();
                    if (GestorAreas.verificaAreaExiste(localizacao))
                    {
                        string habitateDestaArea = GestorAreas.GetHabitateArea(localizacao);

                        if (GestorEspecies.verificaEspecieHabitateExiste(especie, habitateDestaArea))
                        {
                            verificaArea = true;
                        }
                        else
                        {
                            Console.WriteLine("ESTA AREA NAO TEM O HABITATE APROPRIADA Á ESPECIE ESCOLHIDA PARA ESTE ANIMAL");
                            verificaArea = false;
                        }
                    }
                    else
                    {
                        Console.WriteLine("A AREA NAO EXISTE");
                        verificaArea = false;
                    }
                } while (verificaArea == false);

                int simuladorLista = ListaAnimais.Count;
                if (ListaAnimais.Count > ListaProgenitores.Count)
                {
                    char temPais;
                    do
                    {
                        Console.WriteLine("O ANIMAL TEM PAIS NO ZOO? Y/N");
                        char.TryParse(Console.ReadLine(), out temPais);

                        bool verificaAnimal = false;
                        if (temPais == 'y')
                        {
                            string nomePai;
                            do
                            {
                                Console.WriteLine("INDIQUE O NOME DO/A PROGENITOR/A");
                                do
                                {
                                    nomePai = Console.ReadLine();
                                    foreach (Animais animal in ListaAnimais)
                                    {
                                        if (nomePai == animal.getNomeAnimal())
                                        {
                                            ListaProgenitores.Add(nomePai);
                                            simuladorLista++;
                                            verificaAnimal = true;
                                            break;
                                        }
                                    }

                                    if (verificaAnimal == false)
                                    {
                                        Console.WriteLine("ESSE ANIMAL NAO EXISTE NO ZOO");
                                    }
                                } while (verificaAnimal == false);


                                while (ListaProgenitores.Count < ListaAnimais.Count && ListaProgenitores.Count < 2)
                                {
                                    Console.WriteLine("O ANIMAL TEM MAIS ALGUM PROGENITOR NO ZOO? Y/N");
                                    char.TryParse(Console.ReadLine(), out temPais);

                                    if (temPais != 'n' && temPais != 'y')
                                    {
                                        Console.WriteLine("ESSA TECLA E INVALIDA");
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }

                                if (!(ListaProgenitores.Count < ListaAnimais.Count && ListaProgenitores.Count < 2))
                                {
                                    temPais = 'n';
                                }
                            } while (temPais == 'y');
                        }
                        else if (temPais != 'n')
                        {
                            Console.WriteLine("ESSA TECLA E INVALIDA");
                        }
                    } while (temPais == 'y' || temPais != 'n');
                }

                if (ListaAnimais.Count > ListaProgenitores.Count)
                {
                    char temFilhos;
                    Console.WriteLine("O ANIMAL TEM FILHOS NO ZOO? Y/N");
                    char.TryParse(Console.ReadLine(), out temFilhos);

                    do
                    {
                        if (temFilhos == 'y')
                        {
                            Console.WriteLine("QUANTOS FILHOS TEM O ANIMAL?");
                            int.TryParse(Console.ReadLine(), out int nFilhos);
                            //do{
                            if (((ListaAnimais.Count - (ListaFilhos.Count + ListaProgenitores.Count)) >= nFilhos) && nFilhos > 0)
                            {
                                bool verificaAnimal = false;
                                for (int i = 0; i < nFilhos; i++)
                                {
                                    do
                                    {
                                        Console.WriteLine("INDIQUE O NOME DO FILHO " + i + 1);

                                        string nomeFilho = Console.ReadLine();
                                        foreach (Animais animal in ListaAnimais)
                                        {
                                            if (nomeFilho == animal.getNomeAnimal())
                                            {
                                                ListaFilhos.Add(nomeFilho);
                                                verificaAnimal = true;
                                            }
                                        }
                                        if (verificaAnimal == false)
                                        {
                                            Console.WriteLine("ESSE ANIMAL NAO EXISTE NO ZOO");
                                        }
                                    } while (verificaAnimal == false);
                                    temFilhos = 'n';
                                }
                            }
                            else if (nFilhos < 1)
                            {
                                Console.WriteLine("INTRODUZA MAIOR QUE 0");
                            }
                            else
                            {
                                Console.WriteLine("SO EXISTEM {0} FILHOS DISPONIVEIS", ListaAnimais.Count - (ListaFilhos.Count + ListaProgenitores.Count));
                            }
                            //}while () ;
                        }
                        else if (temFilhos != 'n')
                        {
                            Console.WriteLine("ESSA TECLA E INVALIDA");
                        }
                    } while (temFilhos != 'n');
                }


                Animais novoAnimal = new Animais(nomeAnimal, peso, especie, localizacao, ListaProgenitores, ListaFilhos);
                ListaAnimais.Add(novoAnimal);
                Console.WriteLine("O ANIMAL FOI CRIADO COM SUCESSO");
                Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
                Console.ReadLine();
                Console.Clear();
                MainClass.Menu();
            }
        }//FIM CRIAR ANIMAL
Esempio n. 11
0
        //Criar NovaArea========================================================
        public static void CriarArea()
        {
            Console.WriteLine("-----------------------------------------------------------------");
            Console.WriteLine(string.Format("\t\t\tCRIAR NOVAS AREAS"));
            Console.WriteLine("-----------------------------------------------------------------");
            Console.WriteLine(string.Format("{0,7} | {1,-15} | {2,6} | {3,7} | {4,-20} ", "ID", "HABITATE", "CAPAC.", "N.FRONT", "FRONTEIRAS"));
            Console.WriteLine("-----------------------------------------------------------------");


            foreach (AreasDoZoo area in ListaAreasDoZoo)
            {
                Console.WriteLine(area.ReturnAreasConsola());
            }
            Console.WriteLine("-----------------------------------------------------------------");
            //VERIFICA A ULTIMA LETRA DA ULTIMA AREA CRIADA E INCREMENTA
            int    numeroAreas = ListaAreasDoZoo.Count;
            string ID          = ListaAreasDoZoo[numeroAreas - 1].getNomeArea();

            char.TryParse(ListaAreasDoZoo[numeroAreas - 1].getNomeArea().Remove(0, ID.Length - 1), out char ultimoChar);

            if (ultimoChar == 'Z' || ultimoChar == 'z')
            {
                ultimoChar = 'A';
                ID        += ultimoChar;
            }
            else
            {
                ID = ID.Remove(ID.Length - 1) + ++ultimoChar;
            }


            //HABITATE
            Habitates nHabitate;

            do
            {
                Console.WriteLine("TIPO DE HABITATE:");
                Enum.TryParse(Console.ReadLine(), out nHabitate);
                if (nHabitate <= 0 || ((int)(nHabitate)) > Enum.GetValues(typeof(Habitates)).Length)
                {
                    Console.WriteLine("O HABITATE NAO EXISTE, INSIRA UM HABITATE VALIDO");
                }
            } while (nHabitate <= 0 || nHabitate == 0 || ((int)(nHabitate)) > Enum.GetValues(typeof(Habitates)).Length);


            //PESO MÁXIMO DA ÁREA
            Console.WriteLine("CAPACIDADE:");
            double capacidade;

            do
            {
                double.TryParse(Console.ReadLine(), out capacidade);
                if (capacidade <= 0)
                {
                    Console.WriteLine("A CAPACIDADE NECESSITA DE SER POSITIVA");
                }
            } while (capacidade <= 0);


            //QUANTIDADE DE FRONTEIRAS
            int nFronteiras;

            do
            {
                Console.WriteLine("QUANTIDADE DE FRONTEIRAS:");
                int.TryParse(Console.ReadLine(), out nFronteiras);

                if (nFronteiras > ListaAreasDoZoo.Count && ListaAreasDoZoo.Count <= 3)
                {
                    int nAreas = ListaAreasDoZoo.Count;
                    Console.WriteLine("O NUMERO DE AREAS É MENOR QUE O NÚMERO DE FRONTEIRAS REQUERIDAS\n" +
                                      "\nNUMERO DE AREAS DISPONIVEIS -- > {0}\n", nAreas);
                }

                if (nFronteiras <= 0 || nFronteiras > 3)
                {
                    Console.WriteLine("O NUMERO DE FRONTEIRAS NECESSITA ESTAR ENTRE 1 E 3\n");
                }
            } while (nFronteiras <= 0 || nFronteiras > 3 || nFronteiras > ListaAreasDoZoo.Count);


            //FRONTEIRAS
            ListaFronteiras = new List <string>();
            for (int i = 0; i < nFronteiras; i++)
            {
                Console.WriteLine("INSIRA A {0}ª ÁREA ", i + 1);
                int.TryParse(Console.ReadLine(), out int fronteira);
                while (fronteira > ListaAreasDoZoo.Count || fronteira <= 0)
                {
                    Console.WriteLine("A ÁREA NAO EXISTE NA LISTA DE AREAS, INSIRA UMA FRONTEIRA VALIDA");
                    Console.WriteLine("INSIRA A {0}ª ÁREA ", i + 1);
                    int.TryParse(Console.ReadLine(), out fronteira);
                }

                string nomeFronteira = ListaAreasDoZoo[fronteira - 1].getNomeArea();
                if (maxFronteiras(nomeFronteira))
                {
                    Console.WriteLine("ESSE AREA JA TEM O LIMITE FRONTEIRAS");
                    i--;
                }
                else if (ListaFronteiras.Contains(nomeFronteira))
                {
                    Console.WriteLine("JÁ INSERIU ESSA FRONTEIRA, ESCOLHA OUTRA FRONTEIRA VÁLIDA");
                    i--;
                }
                else
                {
                    ListaFronteiras.Add(nomeFronteira);
                }
            }

            //Cria novo objeto de AreaDoZoo
            AreasDoZoo NovaArea = new AreasDoZoo(ID, nHabitate, capacidade, ListaFronteiras);

            //Adiciona NovaArea Á ListaAreasDoZoo
            ListaAreasDoZoo.Add(NovaArea);

            //Escreve para ficheiro a NovaArea criada
            Console.WriteLine("\nNOVA AREA CRIADA:\n{0}", NovaArea.ReturnAreas());
            StreamWriter EscreveAreas = File.AppendText("AreasDoZoo.txt");

            EscreveAreas.WriteLine("{0}", NovaArea.ReturnAreas());
            EscreveAreas.Close();

            Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
            Console.ReadLine();
            Console.Clear();
            MainClass.Menu();
        }//FIM CriarArea()
Esempio n. 12
0
        }//FIM CriarArea()

        public static void EliminarAreas()
        {
            int    indexArea = 0;
            string nomeArea;

            do
            {
                do
                {
                    Console.WriteLine("INDIQUE A ÁREA A ELIMINAR");
                    nomeArea = Console.ReadLine();
                    try
                    {
                        foreach (char c in nomeArea)
                        {
                            if (char.IsDigit(c))
                            {
                                int.TryParse(nomeArea, out indexArea);
                                nomeArea = ListaAreasDoZoo[indexArea - 1].getNomeArea();
                            }
                        }
                    }
                    catch
                    {
                        Console.WriteLine("A ÁREA NÃO SE ENCONTRA NA AREAS DA LISTA");
                    }
                } while (!verificaAreaExiste(nomeArea));

                if (verificaAreaExiste(nomeArea))
                {
                    indexArea = 1;
                    foreach (AreasDoZoo a in ListaAreasDoZoo)
                    {
                        string area = a.getNomeArea();
                        if (area == nomeArea)
                        {
                            if (GestorAnimais.verificaExisteNaArea(nomeArea))
                            {
                                Console.WriteLine("ESTA AREA TEM ANIMAIS E NAO PODE SER ELIMINADA");
                                break;
                            }
                            indexArea++;
                        }
                    }
                }
                else
                {
                    Console.WriteLine("A ÁREA NÃO SE ENCONTRA NA AREAS DA LISTA");
                }
            } while (verificaAreaExiste(nomeArea) == false);

            if (verificaAreaExiste(nomeArea))
            {
                char valor;
                do
                {
                    Console.Clear();
                    Console.WriteLine("TEM A CERTEZA QUE PRETENDE ELIMINAR ESTA AREA?\n");
                    Console.WriteLine("-----------------------------------------------------------------");
                    Console.WriteLine(string.Format("{0,7} | {1,-15} | {2,6} | {3,7} | {4,-20} ", "ID", "HABITATE", "CAPAC.", "N.FRONT", "FRONTEIRAS"));
                    Console.WriteLine("-----------------------------------------------------------------");
                    Console.WriteLine(ListaAreasDoZoo[indexArea].ReturnAreasConsola());
                    Console.WriteLine("-----------------------------------------------------------------\n");
                    Console.WriteLine("Y/N?");
                    char.TryParse(Console.ReadLine(), out valor);
                } while (!(valor == 'y' || valor == 'Y' || valor == 'n' || valor == 'N'));


                if (valor == 'y' || valor == 'Y')
                {
                    nomeArea = ListaAreasDoZoo[indexArea].getNomeArea();
                    eliminarFronteira(nomeArea);
                    ListaAreasDoZoo.RemoveAt(indexArea);
                    Console.WriteLine("{0} ELIMINADA COM SUCESSO", nomeArea);

                    //REESCREVER NO FICHEIRO!
                    StreamWriter writer = new StreamWriter("AreasDoZoo.txt");

                    foreach (AreasDoZoo area in ListaAreasDoZoo)
                    {
                        writer.WriteLine("{0}", area.ReturnAreas());
                    }
                    writer.Close();
                }
                else
                {
                    Console.WriteLine("OPERAÇÃO CANCELADA");
                }
            }
            Console.WriteLine("\n<ENTER PARA VOLTAR AO MENU");
            Console.ReadLine();
            Console.Clear();
            MainClass.Menu();
        }//FIM ELIMINAR AREAS