private bool CheckRundeVorbei() { SpielerBase Verlierer = new SpielerBase();; int counter = 0; foreach (SpielerBase spieler in AlleMitspieler) { if (spieler.Dabei) { counter++; Verlierer = spieler; } } //Wenn nur einer übrig bleibt... if (counter == 1) { if (ErsteHaelfte) { Verlierer.ErsteHaelfte = true; _MainWindow.Spieler.BtnRoll.Content = "Weiter"; _MainWindow.InitializeAnzeige(Wurfrunde.NiedrigsterWurfWert.Item2.NameSpieler + " verliert die erste Runde und fängt neu an!!"); return(true); } if (ZweiteHaelfte) { Verlierer.ZweiteHaelfte = true; if (Verlierer.ErsteHaelfte) //Blattschuss { _MainWindow.Spieler.BtnRoll.Content = ""; _MainWindow.InitializeAnzeige(Wurfrunde.NiedrigsterWurfWert.Item2.NameSpieler + " hat einen Blattschuss gekriegt!!"); } else { _MainWindow.Spieler.BtnRoll.Content = "Finale"; _MainWindow.InitializeAnzeige(Wurfrunde.NiedrigsterWurfWert.Item2.NameSpieler + " verliert die zweite Runde und beginnt das Finale!!"); } return(true); } if (Finale) { //Finale = false; _MainWindow.Spieler.BtnRoll.Content = ""; _MainWindow.InitializeAnzeige(Wurfrunde.NiedrigsterWurfWert.Item2.NameSpieler + " verliert die Runde BIER!!"); return(true); } } return(false); }
private void SortiereWurfInWurfrundeEin(string wurf, SpielerBase spieler) { int wurfwert = Array.IndexOf(Wuerfe.WuerfeListe, wurf); if (Wurfrunde.HoechsterWurfWert == null) { Wurfrunde.HoechsterWurfWert = Tuple.Create(wurfwert, spieler); Wurfrunde.NiedrigsterWurfWert = Tuple.Create(wurfwert, spieler); } else { if (wurfwert > Wurfrunde.HoechsterWurfWert.Item1) { Wurfrunde.HoechsterWurfWert = Tuple.Create(wurfwert, spieler); } if (wurfwert <= Wurfrunde.NiedrigsterWurfWert.Item1) { Wurfrunde.NiedrigsterWurfWert = Tuple.Create(wurfwert, spieler); } } }
private void VerteileUntereinander() { int anzahlDeckelWurf = Wuerfe.Wurfwerte[Wurfrunde.HoechsterWurfWert.Item1]; SpielerBase looser = (from SpielerBase player in AlleMitspieler where player == Wurfrunde.NiedrigsterWurfWert.Item2 select player).First(); SpielerBase winner = (from SpielerBase player in AlleMitspieler where player == Wurfrunde.HoechsterWurfWert.Item2 select player).First(); //SCHOCK AUS ABFANGEN if (anzahlDeckelWurf == 13) { looser.AnzahlDeckel = 13; } else { //Deckel ermitteln und verteilen if (anzahlDeckelWurf > winner.AnzahlDeckel) { anzahlDeckelWurf = winner.AnzahlDeckel; winner.AnzahlDeckel = 0; winner.Dabei = false; } looser.AnzahlDeckel += anzahlDeckelWurf; winner.AnzahlDeckel -= anzahlDeckelWurf; } }
//Die Wurfrunde auswerten und die Deckel verteilen public bool Bewerte() { int anzahlDeckelWurf = Wuerfe.Wurfwerte[Wurfrunde.HoechsterWurfWert.Item1]; SpielerBase looser = Wurfrunde.NiedrigsterWurfWert.Item2; bool schockAus = false; //Schock aus abfangen if (anzahlDeckelWurf == 13) { schockAus = true; _MainWindow.Mitspieler1.SetStapelImage(0); _MainWindow.Mitspieler2.SetStapelImage(0); _MainWindow.Mitspieler3.SetStapelImage(0); _MainWindow.Mitspieler4.SetStapelImage(0); _MainWindow.Spieler.SetStapelImage(0); foreach (var item in AlleMitspieler) { item.Dabei = false; } } if (AnzahlDeckelStapel > 0) {//Es werden Deckel vom Stapel verteilt //es gibt weniger Deckel auf dem Stapel als für den Wurf if (AnzahlDeckelStapel < anzahlDeckelWurf) { anzahlDeckelWurf = AnzahlDeckelStapel; } //Deckel vom Stapel abziehen und Bild setzen AnzahlDeckelStapel = AnzahlDeckelStapel - anzahlDeckelWurf; _MainWindow.Anzeige.ImgStapel.Source = SetStapelImage(AnzahlDeckelStapel); //Zwischen Mitspieler und Spieler unterscheiden if (looser.NameSpieler.Equals("Spieler")) { SpielerBase sb = (from SpielerBase player in AlleMitspieler where player.NameSpieler.Equals(looser.NameSpieler) select player).First(); sb.AnzahlDeckel += anzahlDeckelWurf; if (schockAus) { sb.Dabei = true; _MainWindow.Spieler.SetStapelImage(13); } else { _MainWindow.Spieler.SetStapelImage(sb.AnzahlDeckel); } } else { SpielerBase sb = (from SpielerBase player in AlleMitspieler where player == looser select player).First(); sb.AnzahlDeckel += anzahlDeckelWurf; ucMitspieler aktSpieler = (from ucMitspieler spl in _MainWindow.Computerspieler where spl.Spieler.NameSpieler.Equals(looser.NameSpieler) select spl).FirstOrDefault(); if (schockAus) { aktSpieler.ImgDeckelUser.Source = SetStapelImage(13); aktSpieler.Spieler.Dabei = true; } else { aktSpieler.ImgDeckelUser.Source = SetStapelImage(sb.AnzahlDeckel); } } //Checken, ob Stapel nicht gerade leer wurde... if (AnzahlDeckelStapel == 0) { CheckMitSpielerDabei(); } } else //Die SPieler verteilen untereinander //TODO AB HIER WEITER --> SPieler verteilen Deckel { VerteileUntereinander(); CheckMitSpielerDabei(); } //Die Anzeige im WIndow aktualisieren _MainWindow.UpdateSpieler(); //TODO SetTextANzeige noch um Parameter ergänzen, welcher Text usw... if (!CheckRundeVorbei()) { SetTextAnzeige(looser.NameSpieler, anzahlDeckelWurf); return(false); } else { return(true); } }