public bool KanAangelegd(IKaart kaart, out string melding) { melding = String.Empty; if (this.AantalKaarten == 0) { return true; } Kaart bovensteKaart = this[this.AantalKaarten - 1]; ; if (kaart is IExpeditieKaart && bovensteKaart is ExpeditieKaart) { if (((ExpeditieKaart)kaart).Waarde <= ((ExpeditieKaart)bovensteKaart).Waarde) { melding = "Kaarten mogen alleen in oplopende waarde aangelegd worden aan een expeditie"; return false; } } else if (kaart is IWeddenschapsKaart && bovensteKaart is ExpeditieKaart) { melding = "Na een expeditiekaart mag geen weddenschapskaart worden aangelegd"; return false; } return true; }
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 bool MagKaartSpelen(IKaart kaart) { bool isWaardeOk = (Stapel.Count() == 0) ? true : Stapel.Last().Waarde <= kaart.Waarde; bool isKleurOk = Kleur == kaart.Kleur; return(isWaardeOk && isKleurOk); }
public IOntdekkingsStapel SpeelKaart(IKaart kaart) { if (!MagKaartSpelen(kaart)) { throw new OngeldigeZetException("ongeldige zet"); } Stapel.Add(kaart); return(this); }
/// <summary> /// Constructor /// </summary> /// <param name="kaart">De kaart</param> public KaartViewModel(IKaart kaart) { SetKleur(kaart); SetWaarde(kaart); }
/// <summary> /// Set de waarde van de kaart /// Kaart : null is geen kaart /// </summary> /// <param name="kaart">kaart</param> private void SetWaarde(IKaart kaart) { if (kaart == null) { _waarde = ""; } if (kaart is IExpeditieKaart) { _waarde = ((IExpeditieKaart)kaart).Waarde.ToString(); } if (kaart is IWeddenschapsKaart) { _waarde = "W"; } }
/// <summary> /// Set de kleur van de kaart. /// Kaart : null is geen kaart /// </summary> /// <param name="kaart">kaart</param> private void SetKleur(IKaart kaart) { string kleur; if (kaart == null) { kleur = "Transparant"; } else { kleur = kaart.Kleur.ToString(); } selector = new ColorSelector(kleur); }