示例#1
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;
            }
        }
示例#2
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;
        }