Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
        //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);
            }
        }