}//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. 2
0
        public static void Menu()
        {
            int menu;

            do
            {
                Console.Clear();
                string boasvindas = "BEM-VINDO AO ZOOLOGICO - a21270211";
                Console.SetCursorPosition((Console.WindowWidth - boasvindas.Length) / 2, Console.CursorTop);
                Console.WriteLine(boasvindas);
                Console.WriteLine("\n1 - IMPRIMIR AREAS" +
                                  "\n2 - CRIAR AREA" +
                                  "\n3 - ELIMINAR AREA" +
                                  "\n\n4 - LISTAR TODAS ESPECIES" +
                                  "\n5 - LISTAR ESPECIES NO ZOO" +
                                  "\n6 - CRIAR ESPECIE" +
                                  "\n7 - ADD HABITATE A ESPECIE" +
                                  "\n8 - APAGAR ESPECIES" +
                                  "\n9 - APAGAR HABITATE A ESPECIE" +
                                  "\n\n10 - CRIAR ANIMAL" +
                                  "\n11 - IMPRIMIR ANIMAIS" +
                                  "\n12 - APAGAR ANIMAL" +
                                  "\n13 - NASCER ANIMAL" +
                                  "\n\nENTER - SAIR");

                Console.Write("\n");
                int.TryParse(Console.ReadLine(), out menu);

                switch (menu)
                {
                case 1:
                    Console.Clear();
                    GestorAreas.ImprimirAreas();
                    break;

                case 2:
                    Console.Clear();
                    GestorAreas.CriarArea();
                    break;

                case 3:
                    Console.Clear();
                    GestorAreas.EliminarAreas();
                    break;

                case 4:
                    Console.Clear();
                    GestorEspecies.ImprimirEspecies();
                    break;

                case 5:
                    Console.Clear();
                    GestorAnimais.getEspecie();
                    break;

                case 6:
                    Console.Clear();
                    GestorEspecies.CriarEspecie();
                    break;

                case 7:
                    Console.Clear();
                    GestorEspecies.addHabitate();
                    break;

                case 8:
                    Console.Clear();
                    GestorEspecies.ApagarEspecie();
                    break;

                case 9:
                    Console.Clear();
                    GestorEspecies.ApagarHabitateEspecie();
                    break;

                case 10:
                    Console.Clear();
                    GestorAnimais.CriarAnimal();
                    break;

                case 11:
                    Console.Clear();
                    GestorAnimais.ImprimirAnimais();
                    break;

                case 12:
                    Console.Clear();
                    GestorAnimais.EliminarAnimal();
                    break;

                case 13:
                    Console.Clear();
                    GestorAnimais.NascerAnimal();
                    break;

                case 0:
                    return;
                }
            } while (menu < 0 || menu > 2);
        }
        }//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
Esempio n. 4
0
        }//FIM CRIAR ANIMAL

        public static void NascerAnimal()
        {
            Console.WriteLine("Quantos progenitores tem o animal (1 ou 2)?");
            int.TryParse(Console.ReadLine(), out int nParentes);

            if (nParentes < 1 || nParentes > 2)
            {
                Console.WriteLine("Numero de parentes invalido. Registo de nasimento cancelado.");
                return;
            }


            // recolher a lista com o nome dos pais (1 ou 2)
            List <string> pais = new List <string>();
            string        pai  = "";

            do
            {
                for (int i = 0; i < nParentes; i++)
                {
                    Console.Write("O nome do parente {0} -> ", i + 1);
                    pai = Console.ReadLine();
                    if (GestorAnimais.verificaNomeNaLista(pai))
                    {
                        pais.Add(pai);
                    }
                    else
                    {
                        i--;
                        Console.WriteLine("Erro: o animal indicado não existe.");
                    }
                }
            } while (!GestorAnimais.verificaNomeNaLista(pai));


            // inicio do codigo para apanhar a localizacao dos pais e verificar se estao dentro da mesma area
            string localPais = "";

            foreach (Animais a in ListaAnimais)
            {
                if (a.getNomeAnimal() == pais[0])
                {
                    localPais = a.getLocalizacaoAnimal();
                }
            }

            if (pais.Count > 1)
            {
                foreach (Animais a in ListaAnimais)
                {
                    if (a.getNomeAnimal() == pais[1])
                    {
                        if (a.getLocalizacaoAnimal() != localPais)
                        {
                            Console.WriteLine("Os pais indicados encontram-se em localizacoes diferentes." +
                                              "\nRegisto de nascimento cancelado.");
                            return;
                        }
                    }
                }
            }

            // inicio do codigo para apanhar a especie dos pais e verificar se sao da mesma especie
            string especiePais = "";

            foreach (Animais a in ListaAnimais)
            {
                if (a.getNomeAnimal() == pais[0])
                {
                    especiePais = a.getEspecieAnimal();
                }
            }

            if (pais.Count > 1)
            {
                foreach (Animais a in ListaAnimais)
                {
                    if (a.getNomeAnimal() == pais[1])
                    {
                        if (especiePais != a.getEspecieAnimal())
                        {
                            Console.WriteLine("Os pais indicados sao de especies diferentes." +
                                              "\nRegisto de nascimento cancelado.");
                            return;
                        }
                    }
                }
            }



            // recolher 20% do peso de cada pai -> peso do novo animal
            double pesoNovoAnimal = 0;

            foreach (Animais a in ListaAnimais)
            {
                foreach (string s in pais)
                {
                    if (a.getNomeAnimal() == s)
                    {
                        pesoNovoAnimal += a.GetPeso() * 0.2;
                    }
                }
            }

            string nomeNovoAnimal;

            do
            {
                Console.WriteLine("Insira o nome do animal que vai nascer:");
                nomeNovoAnimal = Console.ReadLine();
                if (GestorAnimais.verificaNomeNaLista(nomeNovoAnimal))
                {
                    Console.WriteLine("Já existe um animal com esse nome.");
                }
            } while (GestorAnimais.verificaNomeNaLista(nomeNovoAnimal) || nomeNovoAnimal.Length < 1);

            // criada lista de filhos vazia. o animal acabou de nascer, logo nao tem filhos.
            List <string> filhos = new List <string>();

            Animais newAnimal = new Animais(nomeNovoAnimal, pesoNovoAnimal, especiePais, localPais, pais, filhos);

            ListaAnimais.Add(newAnimal);
        }
Esempio n. 5
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