public Base() { polecenie = null; nazwaGry = null; wersjaSerwera = null; rozmiarPlanszy = null; wersjaKlienta = null; idPolecenia = -1; idKlienta = -1; pozycja = null; pozycje=null; kodBledu = KodyBledu.nieustawiony; numerOdpowiedzi = NumerOdpowiedzi.nieustawiony; idOdpowiedzi = IdOdpowiedzi.nieustawiony; kierunek = Kierunki.nieustawiony; punkty = -1; trybGry = Tryby.nieustawiony; maxGraczy = -1; pktDoZdobycia = -1; ranking = -1; }
public Rozmiar(Rozmiar roz) { pX = roz.pX; pY = roz.pY; }
public List<Pozycja> wZasiegu(Statek statek, Rozmiar rozmiar) { List<Pozycja> poz = new List<Pozycja>(); for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) { if (j == 0 && i == 0) continue; foreach (Pozycja p in statek.pozycje) if (modulo((pPelnePozycje[3].x + i), rozmiar.x) == p.x && (modulo(pPelnePozycje[3].y + j, rozmiar.y) == p.y)) poz.Add(p); } for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) { if (j == 0 && i == 0) continue; foreach (Pozycja p in statek.pozycje) if (modulo((pPelnePozycje[1].x - i), rozmiar.x) == p.x && (modulo(pPelnePozycje[1].y + j, rozmiar.y) == p.y)) poz.Add(p); } for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) { if (j == 0 && i == 0) continue; foreach (Pozycja p in statek.pozycje) if (modulo((pPelnePozycje[0].x - i), rozmiar.x) == p.x && (modulo(pPelnePozycje[0].y - j, rozmiar.y) == p.y)) poz.Add(p); } for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) { if (j == 0 && i == 0) continue; foreach (Pozycja p in statek.pozycje) if (modulo((pPelnePozycje[2].x + i), rozmiar.x) == p.x && (modulo(pPelnePozycje[2].y - j, rozmiar.y) == p.y)) poz.Add(p); } return poz; }
public void wykonajRuch(int kierunek, Rozmiar rozmiar) { if (kierunek == Kierunki.gora) { foreach (Pozycja p in pozycje) p.y = modulo((++p.y), rozmiar.y); foreach (Pozycja p in pPelnePozycje) p.y = modulo((++p.y), rozmiar.y); } if (kierunek == Kierunki.dol) { foreach (Pozycja p in pozycje) p.y = modulo((--p.y), rozmiar.y); foreach (Pozycja p in pPelnePozycje) p.y = modulo((--p.y), rozmiar.y); } if (kierunek == Kierunki.prawo) { foreach (Pozycja p in pozycje) p.x = modulo((++p.x), rozmiar.x); foreach (Pozycja p in pPelnePozycje) p.x = modulo((++p.x), rozmiar.x); } if (kierunek == Kierunki.lewo) { foreach (Pozycja p in pozycje) p.x = modulo((--p.x), rozmiar.x); foreach (Pozycja p in pPelnePozycje) p.x = modulo((--p.x), rozmiar.x); } }
public void odrodzenie(List<Statek> statki, Rozmiar rozmiar) { pozycje.RemoveAll(delegate(Pozycja p) { return true; }); Random rand = new Random(DateTime.Now.Millisecond); int x = rand.Next() % rozmiar.x; int y = rand.Next() % rozmiar.y; while (true) { x = rand.Next() % rozmiar.x; y = rand.Next() % rozmiar.y; Pozycja poz = new Pozycja(x, y); if (kolizja(statki, poz)) continue; break; } List<Pozycja> lista = new List<Pozycja>(); pozycje.Add(new Pozycja(x, y)); pozycje.Add(new Pozycja(x, y + 1)); pozycje.Add(new Pozycja(x + 1, y)); pozycje.Add(new Pozycja(x + 1, y + 1)); }
public bool kolizja(Statek s, int kierunek, Rozmiar rozmiar) { foreach (Pozycja p in s.pozycje) { foreach (Pozycja pp in pozycje) { if (kierunek == Kierunki.gora) return (modulo((p.y + 1), rozmiar.y) == pp.y && (p.x == pp.x)); if (kierunek == Kierunki.dol) return (modulo((p.y - 1), rozmiar.y) == pp.y && (p.x == pp.x)); if (kierunek == Kierunki.prawo) { if (modulo((p.x + 1), rozmiar.x) == pp.x && (p.y == pp.y)) Console.WriteLine("1. " + p.ToString() + "2. " + pp.ToString()); return (modulo((p.x + 1), rozmiar.x) == pp.x && (p.y == pp.y)); } if (kierunek == Kierunki.lewo) return (modulo((p.x - 1), rozmiar.x) == pp.x && (p.y == pp.y)); } } mutexPozycje.ReleaseMutex(); s.mutexPozycje.ReleaseMutex(); return false; }
public void ustawCRE(string pol, string nazwa, int x, int y, int tryb, int max, string wersja) { polecenie = pol; nazwaGry = nazwa; rozmiarPlanszy = new Rozmiar(x, y); wersjaKlienta = wersja; trybGry = tryb; maxGraczy = max; }
public Polecenia(string pol, int idK, string wersja, int x, int y) { polecenie = pol; idKlienta = idK; wersjaSerwera = wersja; rozmiarPlanszy = new Rozmiar(x, y); }