Example #1
0
        public static List<Base> Detectar(Universo universo, Entidade entidade)
        {
            List<Base> detectadas = new List<Base>();

            long inicialX = entidade.atualX - entidade.visao;
            long finalX = entidade.atualX + entidade.visao;

            long inicialY = entidade.atualY - entidade.visao; ;
            long finalY = entidade.atualY + entidade.visao; ;

            for (long x = inicialX; x <= finalX; x++)
            {
                for (long y = inicialY; y <= finalY; y++)
                {
                    foreach (Base b in universo.listaBase)
                    {
                        if (b.atualX == x && b.atualY == y && b.nome != entidade.nome)
                            detectadas.Add(b);
                    }
                }
            }

            entidade.AlterarEnergiaAtual(-1);

            return detectadas;
        }
Example #2
0
        public static bool VerificaPossivelMovimento(Universo universo, Entidade entidade, long x, long y)
        {
            //foreach (Entidade e in universo.Entidades)
            //{
            //    if (x >= e.posicaoX || y >= e.posicaoY)
            //        return false;
            //}

            if (x > universo.comprimento || y > universo.altura || x < 0 || y < 0)
                return false;

            return true;
        }
Example #3
0
        public static bool Mover(Universo universo, Entidade entidade)
        {
            Random random = new Random();

            long espacoX = 0;
            long espacoY = 0;
            long novoX = 0;
            long novoY = 0;

            if (random.Next(2) >= 1)
            {
                espacoX = random.Next(Convert.ToInt16(entidade.velocidade));
            }
            else
            {
                espacoX = -random.Next(Convert.ToInt16(entidade.velocidade));
            }

            if (random.Next(2) >= 1)
            {
                espacoY = random.Next(Convert.ToInt16(entidade.velocidade));
            }
            else
            {
                espacoY = -random.Next(Convert.ToInt16(entidade.velocidade));
            }

            if (espacoX > 0 || espacoY > 0)
            {
                novoX = entidade.atualX + espacoX;
                novoY = entidade.atualY + espacoY;

                if (MoverXY(universo, entidade, novoX, novoY))
                {
                    entidade.AlterarEnergiaAtual(-Math.Abs(espacoX));
                    entidade.AlterarEnergiaAtual(-Math.Abs(espacoY));
                    return true;
                }
                else
                {
                    entidade.AlterarEnergiaAtual(-1);
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
Example #4
0
        private static bool MoverXY(Universo universo, Entidade entidade, long x, long y)
        {
            if (VerificaPossivelMovimento(universo, entidade, x, y))
            {

                if (entidade.atualX != x)
                    entidade.atualX = x;

                if (entidade.atualY != y)
                    entidade.atualY = y;

                return true;
            }

            return false;
        }
Example #5
0
 public static Entidade Fusao(Entidade e1, Entidade e2)
 {
     return new Entidade(e1.atualX, e1.atualY, (e1.visao + e2.visao) / 2, (e1.EnergiaInicial() + e2.EnergiaInicial()) / 2)
     {
         altura = (e1.altura + e2.altura) /2,
         ativo = true,
         visao = (e1.visao + e2.visao) / 2,
         comprimento = (e1.comprimento + e2.comprimento) /2,
         dataCriacao = DateTime.Now,
         largura = (e1.largura + e2.largura) /2,
         logUltimaAtividade = "Foi gerado.",
         nome = (e1.nome.Substring(0, e1.nome.Length /2) + e2.nome.Substring(e2.nome.Length/2, e2.nome.Length)),
         peso = (e1.peso + e2.peso) /2,
         atualX = e1.atualX,
         atualY = e1.atualY,
         dataUltimaAtividade = DateTime.Now,
         taxaDeAtividade = (e1.taxaDeAtividade + e2.taxaDeAtividade) /2
     };
 }
Example #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Bem vindo ao Universo.\n");
            DateTime bigBang = DateTime.Now;
            DateTime endBang = bigBang.AddSeconds(180);
            Console.WriteLine("BigBang em " + bigBang + ".");

            Cerebro.Universo universo = new Cerebro.Universo()
            {
                comprimento = 10,
                largura = 10,
                altura = 10
            };

            Objeto maca = new Objeto(3, 3, 1)
            {
                nome = "Queijo",
                peso = 1,
                material = Material.Organico,
                estadoFisico = EstadoFisico.Solido,
                genero = Genero.Feminino,
                reino = Reino.Planta
            };

            Entidade rato = new Entidade(2, 2, 2, 50)
            {
                peso = 1,
                comprimento = 1,
                altura = 1,
                largura = 1,
                nome = "Rato",
                taxaDeAtividade = 1,
                velocidade = 3,
                reino = Reino.Animal,
                genero = Genero.Masculino,
                estadoFisico = EstadoFisico.Solido,
                material = Material.Organico
            };

            universo.Adicionar(rato);
            universo.Adicionar(maca);

            Console.WriteLine("\nEntidades presentes no Universo:");
            foreach (Base b in universo.listaBase)
            {
                Console.WriteLine(" - " + b.nome + " em " + b.atualX + "," + b.atualY + ".");
            }

            Console.WriteLine("\nIniciando atividades:");
            while (endBang > DateTime.Now)
            {
                //List<string> ultimasAtividades = universo.Fluir(bigBang);

                foreach (Base b in universo.listaBase)
                {
                    b.AutoVerificacao();
                    if (b is Entidade)
                        foreach (Estados e in b.estadosAtivos)
                            Console.WriteLine(b.nome + " esta " + e.ToString());
                }

                //foreach (string s in ultimasAtividades)
                //{
                //    Console.WriteLine(s);
                //}
            }

            Console.WriteLine("\nEndBang em " + endBang + ".");
            Console.ReadKey();
        }
Example #7
0
 public static bool Descansar(Universo universo, Entidade entidade)
 {
     return true;
 }