/// <summary> /// Geef een kaart uit. /// </summary> /// <param name="hand">De hand die een kaart krijgt.</param> /// <param name="stapelKaarten">De stapel kaarten van het sperl.</param> /// <returns>Heeft de speler gekocht of niet.</returns> public bool Kopen(Hand hand, StapelKaarten stapelKaarten) { Kaart kaart = stapelKaarten.NeemEenKaart(); if (kaart != null) { hand.AddKaart(kaart); return(true); } return(false); }
/// <summary> /// De eerste processen van het spel voor dat het spel start. /// Vraag de speler om fiches bij de hand te inzetten. /// Geef elke hand eerste kaart.Ook geeft allen de spelers tweede kaart. /// Dus de dealer krijgt een kaart. /// </summary> private bool Beginnen() { foreach (Speler speler in this.tafel.Spelers) { int waardeVanDeInzetten = 0; // todo, loopje while (speler.Fiches.WaardeVanDeFiches < speler.HuidigeTafel.MinimalenZet) { this.communicator.TellPlayer(speler, Meldingen.VoorwaardenTafelFiches); if (!this.FichesKopen(speler)) { // Wil niet mee doen. // de speler wil niet inzetten en doet dus niet mee this.communicator.TellPlayer(speler, Meldingen.GeenFiches); if (this.AskNieuwRondje(this.tafel.Spelers)) { this.StartRonde(); return(false); } else { this.communicator.TellPlayer(speler, Meldingen.Gestopt); this.communicator.SleuitHetSpel(); return(false); } } } // Vraag om te inzetten. foreach (Hand hand in this.spel.Handen) { if (!hand.IsDealerHand) { this.spelerHand = hand as SpelerHand; bool magInzetten = true; if (this.spelerHand.Speler == speler) { while (!this.VraagAanSpelerInzetVoorEenHand(this.spelerHand, out waardeVanDeInzetten)) { magInzetten = false; break; } // als mag inzetten, dan laat de speler inzetten. if (magInzetten) { this.spelerHand.Inzet.Add(this.spelerHand.Speler.Fiches.GeefMeFischesTerWaardeVan(waardeVanDeInzetten, 50, true)); this.communicator.TellHand(this.spelerHand, Meldingen.ToonInzet, string.Empty); } else { // Wil niet mee doen. // de speler wil niet inzetten en doet dus niet mee this.communicator.TellPlayer(speler, Meldingen.GeenFiches); if (this.AskNieuwRondje(this.tafel.Spelers)) { this.StartRonde(); return(false); } else { this.communicator.TellPlayer(speler, Meldingen.Gestopt); this.communicator.SleuitHetSpel(); return(false); } } } } } } // geef elke hand een kaart foreach (Hand hand in this.spel.Handen) { Kaart kaart = this.tafel.StapelKaarten.NeemEenKaart(); if (kaart != null) { hand.AddKaart(kaart); if (!hand.IsDealerHand) { this.communicator.TellHand(hand, Meldingen.KaartenVanDeHand, string.Empty); } // this.TellToPlayers(this.spel.Spelers, Meldingen.KaartenVanDeHand, hand, string.Empty); } else { // Als er geen kaarten in de stapel kaarten staan. this.tafel.StapelKaarten = StapelKaartenFactory.CreateBlackJackKaarten(2); } } // geef elke hand een kaart, behalve de dealer foreach (Hand hand in this.spel.Handen) { if (!hand.IsDealerHand) { Kaart kaart = this.tafel.StapelKaarten.NeemEenKaart(); if (kaart != null) { hand.AddKaart(kaart); } else { // Als er geen kaarten in de stapel kaarten staan. this.tafel.StapelKaarten = StapelKaartenFactory.CreateBlackJackKaarten(2); } } if (!hand.IsDealerHand) { SpelerHand spelerhand = hand as SpelerHand; // Dan laat de andere spelers weten wat is gebeurt. // this.TellToPlayers(this.spel.Spelers, Meldingen.KaartenVanDeHand, spelerhand, string.Empty); } } return(true); }
/// <summary> /// Voeg een kaart aan de hand toe. /// </summary> /// <param name="kaart">Nieuwe kaart.</param> public void AddKaart(Kaart kaart) { this.kaarten.Add(kaart); this.Status = HandStatussen.InSpel; }