示例#1
0
文件: Visao.cs 项目: Effects/Universo
        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;
        }
示例#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;
        }
示例#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;
            }
        }
示例#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;
        }
示例#5
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();
        }
示例#6
0
 public static bool Descansar(Universo universo, Entidade entidade)
 {
     return true;
 }