예제 #1
0
 private void CheckMitSpielerDabei()
 {
     foreach (SpielerBase sb in AlleMitspieler)
     {
         //Erst die Daten für die SPielrunde --> Scheissarchitektur ;)
         if (sb.AnzahlDeckel == 0)
         {
             sb.Dabei = false;
         }
         //Zwischen UcMitspieler und Spieler unterscheiden
         ucMitspieler ucm = (from ucMitspieler item in _MainWindow.Computerspieler where item.Spieler.NameSpieler.Equals("") select item).FirstOrDefault();
         if (ucm != null)   // Es handelt sich um einen ucMitspieler
         {
             if (ucm.Spieler.AnzahlDeckel == 0)
             {
                 ucm.Spieler.Dabei = false;
             }
         }
         else     //Es handelt sich um den Spieler
         {
             if (_MainWindow.Spieler.Spieler.AnzahlDeckel == 0)
             {
                 _MainWindow.Spieler.Spieler.Dabei = false;
             }
         }
     }
 }
예제 #2
0
        public void Start()
        {
            //Der Spieler beginnt
            Wurfrunde = new WurfRunde();
            Wurfrunde.AnzahlWuerfe = 3;

            int CounterWegenAnzahlWuerfe = 0;

            foreach (SpielerBase spieler in AlleMitspieler)
            {
                if (spieler.NameSpieler.Equals("Spieler"))
                {
                    if (spieler.Dabei)
                    {
                        //Der User würfelt selber
                        WuerfelDialog dialog = new WuerfelDialog(Wurfrunde.AnzahlWuerfe);
                        if (dialog.ShowDialog() == true)
                        {
                            spieler.Wurf = dialog.Wurf;
                            _MainWindow.Spieler.SetCubeImages(dialog.Wurf);
                            _MainWindow.Spieler.lblSpielername.Content = Wuerfe.Wurfbezeichnungen[Array.IndexOf(Wuerfe.WuerfeListe, spieler.Wurf)];
                            SortiereWurfInWurfrundeEin(spieler.Wurf, spieler);
                        }
                    }
                }
                else
                {
                    if (spieler.Dabei)
                    {
                        //Der COmputer würfelt
                        //Welcher SPieler?
                        ucMitspieler aktSpieler = (from ucMitspieler spl in _MainWindow.Computerspieler where spl.Spieler.NameSpieler.Equals(spieler.NameSpieler) select spl).FirstOrDefault();

                        //TODO, das hier ist vorläufig. An diese STelle kommt noch eine Methode mit der Würfellogik für den Computerspieler
                        spieler.Wurf = Wuerfeln.Wuerfle(3);
                        aktSpieler.SetCubeImages(spieler.Wurf);
                        aktSpieler.lblWurfbezeichnung.Content = Wuerfe.Wurfbezeichnungen[Array.IndexOf(Wuerfe.WuerfeListe, spieler.Wurf)];
                        SortiereWurfInWurfrundeEin(spieler.Wurf, spieler);
                    }
                }
                CounterWegenAnzahlWuerfe++;
            }
            //Alle haben gewürfelt --> Bewerten
            if (Bewerte())
            {
                //Die aktuelle Wuerfelrunde ist vorbei!

                WeiterDialog d = new WeiterDialog();
                if (d.ShowDialog() == true)
                {
                    _MainWindow.ResetSpielerFuerWurfrunde();
                    _MainWindow.UpdateSpieler(true);
                    ResetRunde();
                    ReStart();
                }
            }
            else
            {
                //Dialog, um weiter zu würfeln
                WeiterDialog d = new WeiterDialog();
                if (d.ShowDialog() == true)
                {
                    _MainWindow.ResetSpielerFuerWurfrunde();
                    ReStart();
                }
            }
        }
예제 #3
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);
            }
        }