/// <summary> /// Add meer dan een fiches. /// </summary> /// <param name="fiches">fiches die wordt toegevoegd.</param> public void Add(Fiches fiches) { Debug.Assert(fiches != null, "fiches mag niet null zijn"); Debug.Assert(fiches.fiches != null, "interne list fiches mag niet null zijn"); if (fiches != null && fiches.fiches != null) { this.fiches.AddRange(fiches.fiches); } }
/// <summary> /// Initializes a new instance of the <see cref="Tafel"/> class. /// </summary> /// <param name="aantalPlekken">Hoe veel plekken aan de tafel .</param> /// <param name="fiches">Waar de fiches staat.</param> /// <param name="stapelKaarten">Waar de kaarten staat.</param> /// <param name="maximaleInZet">Bepaalt de max inzet voor deze tafel.</param> /// <param name="minimaleInZet">Bepaalt de min inzet voor deze tafel.</param> private Tafel(int aantalPlekken, Fiches fiches, StapelKaarten stapelKaarten, int maximaleInZet, int minimaleInZet) { this.StapelKaarten = stapelKaarten; this.Fiches = fiches; this.MaximaleInZet = maximaleInZet; this.MinimalenZet = minimaleInZet; this.plekken = new Plek[aantalPlekken]; for (int i = 0; i < this.plekken.Length; i++) { this.plekken[i] = new Plek(); } }
/// <summary> /// Maak een nieuwe tafel. /// </summary> /// <param name="fiches">De fiches die aan de tafel zijn.</param> /// <returns>De nieuwe tafel.</returns> public static Tafel CreateBlackJackTafel(Fiches fiches) { Tafel tafel = new Tafel(6, fiches, StapelKaartenFactory.CreateBlackJackKaarten(2), 100, 5); return(tafel); }
/// <summary> /// functie om fiches te krijgen. /// </summary> /// <param name="waardeInEuros">de waarde die je wilt.</param> /// <param name="maxFicheWaarde"> de gewenste grootte van de waarde van de fiches. </param> /// <param name="exact">of je wel of niet exact moet uitkomen.</param> /// <returns>de lijst met fiches.</returns> public Fiches GeefMeFischesTerWaardeVan(int waardeInEuros, int maxFicheWaarde, bool exact) { if (this.WaardeVanDeFiches < waardeInEuros) { // gooi een exceptie throw new ArgumentOutOfRangeException("er zijn niet genoeg fiches beschikbaar voor dit bedrag."); } // hoe kom ik aan de fiches Fiches returnFiches = new Fiches(); // check eerst of ik fiches heb die de maxWaarde hebben maxFiches foreach (Fiche fiche in this.fiches) { if (fiche.Waarde <= maxFicheWaarde) { if (returnFiches.WaardeVanDeFiches + fiche.Waarde <= waardeInEuros) { // ok, voeg toe aan de return wfiches returnFiches.Add(fiche); } } } // heb ik dan nog waarde over ? en kan ik dat dan terug geven // met kleinere fiches. if (returnFiches.WaardeVanDeFiches < waardeInEuros) { foreach (Fiche fiche in this.fiches) { if (fiche.Waarde < maxFicheWaarde) { if (returnFiches.WaardeVanDeFiches + fiche.Waarde <= waardeInEuros) { // ok, voeg tioe aan de return wfiches returnFiches.Add(fiche); } } } } // heb ik dan nog waarde over ? en kan ik dat dan terug geven // met grotere fiches. if (returnFiches.WaardeVanDeFiches < waardeInEuros) { foreach (Fiche fiche in this.fiches) { if (fiche.Waarde > maxFicheWaarde) { if (returnFiches.WaardeVanDeFiches + fiche.Waarde <= waardeInEuros) { // ok, voeg tioe aan de return wfiches returnFiches.Add(fiche); } } } } // heb ik dan nog waarde over ? en kan ik dat dan terug geven // met kleinere fiches. if (exact && returnFiches.WaardeVanDeFiches < waardeInEuros) { // wat doe ik nu, geef ik het wel terug of zeg ik dat het niet kan? // als ik zeg dat het niet kan? returnFiches = null; } // ok alle fiches die ik terug geef verwijderen uit mijn lijst if (returnFiches != null) { foreach (Fiche fiche in returnFiches.fiches) { this.Remove(fiche); } } return(returnFiches); }