/// <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> /// 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); }