int gracz, wrog; //kto jest kim public Graf(Gra stan, int g) { W = new List <Wierz>(); K = new List <Kraw>(); liscie = new List <Wierz>(); gracz = g; if (gracz == 0) { wrog = 1; } else { wrog = 0; } Wierz w = new Wierz(); w.gra = stan; Wierz ww = new Wierz(w, gracz); W.Add(ww); BudujGraf(Warstw.warstw); Wierz najlepsze; bool over = false; for (int prog = BETA_MAX; prog != ALFA_MIN - 1; prog--) { if (!over) { foreach (Wierz wyn in liscie) { if (!over) { if (prog == wyn.waga) { najlepsze = wyn; foreach (Kraw ruch in K) { if (ruch.k == najlepsze && ruch.p == ww) { wynik = ruch; over = true; break; } } } } } } } }
List <Wierz> RozwinWierz(Wierz w) //robi dla w :-dzieci(zruchem) -dodaje do list { List <Wierz> lw = new List <Wierz>(); //nowe wierzcholki od ojca Pionek p = new Pionek(0); Wierz nowy_wierz = new Wierz(w, gracz); void p_cel(int y, int x) { p.w = y; p.r = x; } foreach (Pionek t in w.gra.pionki[w.gra.kolej]) { if (t.aktywny) { for (int y = 0; y < 8; y++) { for (int x = 0; x < 8; x++) { p_cel(y, x); if (nowy_wierz.Zagraj(t, p)) { Kraw nowa_kraw = new Kraw(w, nowy_wierz); nowa_kraw.p1 = new Pionek(t); nowa_kraw.p2 = new Pionek(p); { lw.Add(nowy_wierz); W.Add(nowy_wierz); K.Add(nowa_kraw); } nowy_wierz = new Wierz(w, gracz); } } } } } w.rozwiniety = true; //dodaje do lisci//czyli swierza nowa warstwa return(lw); }
bool Dolacz(Wierz w, Kraw k) { foreach (Wierz w_w in W) { if (!w_w.Czy_Rozne(w)) { return(false); } } W.Add(w); K.Add(k); return(true); }