Ejemplo n.º 1
0
        public static void ClassificarAnimal(Animais Animais)
        {
            var Classe     = Animais.GetType();
            var @interface = Classe.GetInterfaces().FirstOrDefault();

            if ((typeof(IAereo)).Equals(@interface))
            {
                System.Console.WriteLine($"Animal escolhido é o {Classe.Name}, e este vai para a gaiola.");
            }
            else if ((typeof(IAquatico)).Equals(@interface))
            {
                System.Console.WriteLine($"Animal escolhido é o {Classe.Name}, e este vai para a piscina.");
            }
            else if ((typeof(IBranquiado)).Equals(@interface))
            {
                System.Console.WriteLine($"Animal escolhido é o {Classe.Name}, e este vai para a piscina de água salgada.");
            }
            else if ((typeof(IEscalador)).Equals(@interface))
            {
                System.Console.WriteLine($"Animal escolhido é o {Classe.Name}, e este vai para a casa na arvore.");
            }
            else if ((typeof(IQuinofilo)).Equals(@interface))
            {
                System.Console.WriteLine($"Animal escolhido é o {Classe.Name}, e este vai para a piscina gelada.");
            }
            else if ((typeof(ITerrestre)).Equals(@interface))
            {
                System.Console.WriteLine($"Animal escolhido é o {Classe.Name}, e este vai para o pasto ou caverna.");
            }
            Console.ReadLine();
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
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