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; } }
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; }