private static bool KanAangelegd(IKaart kaart, IExpeditieBord bord) { IExpeditieStapel stapel = bord.GetExpeditieStapel(kaart.Kleur); if (stapel.AantalKaarten == 0) { return true; } IKaart bovensteKaart = stapel.GetKaart(stapel.AantalKaarten-1); if (kaart is IExpeditieKaart && bovensteKaart is IExpeditieKaart) { if (((IExpeditieKaart)kaart).Waarde <= ((IExpeditieKaart)bovensteKaart).Waarde) { return false; } } else if (kaart is IWeddenschapsKaart && bovensteKaart is IExpeditieKaart) { return false; } return true; }
public SpelStatus(IStapel hand, IAflegBord aflegbord, IExpeditieBord bord, IExpeditieBord bordTegenstander, int score, int scoreTegenstander, int aantalKaartenTrekstapel) { this.hand = hand; this.aflegbord = aflegbord; this.bord = bord; this.bordTegenstander = bordTegenstander; this.score = score; this.scoreTegenstander = scoreTegenstander; this.aantalKaartenTrekstapel = aantalKaartenTrekstapel; }
public static int[] BepaalMogelijkeLegActies(IStapel hand, IExpeditieBord bord) { ArrayList mogelijkheden = new ArrayList(); ; string melding = String.Empty; for (int i = 0; i < hand.AantalKaarten; i++) { IKaart kaart = hand[i]; ExpeditieStapel stapel = (ExpeditieStapel)bord.GetExpeditieStapel(kaart.Kleur); if (stapel.KanAangelegd(kaart, out melding)) { mogelijkheden.Add(i); } } return (int[])mogelijkheden.ToArray(typeof(int)); }