public void reestablecer() { Random rnd = new Random(); Mapa.Personajes = new List <Entidad>(); //Implementar clase que obtenga nombres //Nombres Reponom = new Nombres({,,,}); //Reponom.sacarNombre(); Nomop nombres = new Nomop(); //Pelotas //Equipo 1 izquierda + true Cazador c1e1 = new Cazador(12, 3, true, nombres.getnom(), '►'); Cazador c2e1 = new Cazador(12, 9, true, nombres.getnom(), '►'); Cazador c3e1 = new Cazador(12, 15, true, nombres.getnom(), '►'); Golpeador g1e1 = new Golpeador(17, 3, true, nombres.getnom(), '♠'); Golpeador g2e1 = new Golpeador(17, 15, true, nombres.getnom(), '♠'); Guardian ge1 = new Guardian(1, 9, true, nombres.getnom(), (char)18); //Equipo 2 derecha - false Cazador c1e2 = new Cazador(61, 3, false, nombres.getnom(), '◄'); Cazador c2e2 = new Cazador(61, 9, false, nombres.getnom(), '◄'); Cazador c3e2 = new Cazador(61, 15, false, nombres.getnom(), '◄'); Golpeador g1e2 = new Golpeador(56, 3, false, nombres.getnom(), '♥'); Golpeador g2e2 = new Golpeador(56, 15, false, nombres.getnom(), '♥'); Guardian ge2 = new Guardian(72, 9, false, nombres.getnom(), (char)18); //Mas pelotas Quaffle q = new Quaffle(36, 9); #region Mapa.Personajes.Add(c1e1); Mapa.Personajes.Add(c2e1); Mapa.Personajes.Add(c3e1); Mapa.Personajes.Add(g1e1); Mapa.Personajes.Add(g2e1); Mapa.Personajes.Add(ge1); Mapa.Personajes.Add(c1e2); Mapa.Personajes.Add(c2e2); Mapa.Personajes.Add(c3e2); Mapa.Personajes.Add(g1e2); Mapa.Personajes.Add(g2e2); Mapa.Personajes.Add(ge2); Mapa.Personajes.Add(q); #endregion }
public override bool Mover(int pfx, int pfy, long tics) { double minim = 0; Quaffle qt = (Quaffle)Mapa.Personajes[12]; if (tieneQuaffle == true) //Si tiene la quaffle, debe ver si puede disparar, si no, debe avanzar y cargarla con el { //Buscar el aro mas cercano if (equipo == false) { double d1 = Math.Pow(Math.Abs(posx - 1), 2) + Math.Pow(Math.Abs(posy - 6), 2); //73 9 73 6 73 12 double d2 = Math.Pow(Math.Abs(posx - 1), 2) + Math.Pow(Math.Abs(posy - 9), 2); double d3 = Math.Pow(Math.Abs(posx - 1), 2) + Math.Pow(Math.Abs(posy - 12), 2); minim = Math.Min(d1, d2); minim = Math.Min(minim, d3); } if (equipo == true) { double d1 = Math.Pow(Math.Abs(posx - 73), 2) + Math.Pow(Math.Abs(posy - 6), 2); //73 9 73 6 73 12 double d2 = Math.Pow(Math.Abs(posx - 73), 2) + Math.Pow(Math.Abs(posy - 9), 2); double d3 = Math.Pow(Math.Abs(posx - 73), 2) + Math.Pow(Math.Abs(posy - 12), 2); minim = Math.Min(d1, d2); minim = Math.Min(minim, d3); } bool exito = this.disparar(minim); qt.posx = posx; qt.posy = posy; return(exito); } else if (qt.enPosesion == 0) //si no la tiene, debe ver donde esta, y si alguien mas la tiene { return(seguirQuaffle(qt, tics)); } else if (qt.enPosesion == -1 && tieneQuaffle == false) { foreach (Entidad i in Mapa.Personajes) { if (i is Cazador) { Cazador j = (Cazador)i; if (j.tieneQuaffle) { this.seguir(j.posx, j.posy, tics); } } } } return(true); }
public bool seguirQuaffle(Quaffle q, long tics) { int pasos = vel_lineal; int pfx = q.posx; //Fijando objetivo int pfy = q.posy; if (q.enPosesion == 0) //Dirigirse a la quaffle si nadie mas la tiene { while (pasos > 0 && Aturdido == 0) //Si no está aturdido { int dx = posx - pfx; int dy = posy - pfy; if (dx == 0 && dy == 0) //Llegó a la quaffle { enQuaffle = true; q.enPosesion++; pasos = 0; //Se detiene } else if (tics % 2 == 0) { if (dx != 0) { if (dx < 0) { posx++; } else { posx--; } } else if (dy != 0) { if (dy > 0) { posy--; } else { posy++; } } } else if (tics % 2 == 1) { if (dy != 0) { if (dy > 0) { posy--; } else { posy++; } } else if (dx != 0) { if (dx < 0) { posx++; } else { posx--; } } } pasos--; } //En el turno de la quaffle, se decide a quien se le entrega if (Aturdido > 0) //Suponiendo que se llama una vez por tic { Aturdido--; } } return(enQuaffle); }