public List <Move> GetListaMogucihPoteza() //Get the list of possibilities { List <Move> potezi = TrenutnoStanje.GetListaPoteza(NaPotezu); foreach (Move p in potezi) { p.NarednoStanje = new ContextMakao(new Tabla(TrenutnoStanje), NaPotezu); p.PrethodnoStanje = this; ObnovaStanja(p, NaPotezu); int sledeciNaPotezu = NaPotezu; if (sledeciNaPotezu == 1) { sledeciNaPotezu = 2; } else { sledeciNaPotezu = 1; } p.NarednoStanje.NaPotezu = sledeciNaPotezu; TipPoteza n = new TipPoteza(); n = p.Tip; if (p.NarednoStanje.TrenutnoStanje.Ruka.Count() == 0) { n = TipPoteza.Poslednja ^ p.Tip; } p.Tip = n; } if (potezi.Count() == 0) { potezi.Add(new Move(TipPoteza.KupiKartu)); } return(potezi); }
public virtual int Evaluate() { List <Karta> zaBacanje = new List <Karta>(); int bodovi = 0; if (TrenutnoStanje.Pobedio == 2) { return(-10000); } if (TrenutnoStanje.Pobedio == 1) { return(10000); } bodovi += TrenutnoStanje.BodoviEvaluacija(); bodovi += TrenutnoStanje.Ruka.Count() * 100; if (TrenutnoStanje.Pobedio == 1) { return(bodovi); } else { return(-bodovi); } }
public List <Potez> GetListaMogucihPoteza() { List <Potez> potezi = TrenutnoStanje.GetListaPoteza(); potezi.ForEach(x => { string info; x.PrethodnoStanje = this; x.NarednoStanje = new ContextIksOks(new Tabla(TrenutnoStanje), NaPotezu); x.NarednoStanje.TrenutnoStanje.Potez(NaPotezu, x.x, x.y, out info); x.NarednoStanje.Sledeci(); }); return(potezi); }
public void PotezProtivnika(List <Karta> karte, Boja boja, int BrojKarataProtivnika) { TrenutnoStanje.PotezProtivnika(karte, boja, BrojKarataProtivnika); }
public void DodajURuku(List <Karta> izvuceneKArte) { TrenutnoStanje.DodajURuku(izvuceneKArte); }