//todo Überprüfen ob Quartett vollständig
 private void CheckIfPlayerHasCardsLeft()
 {
     //Hat Spieler 1 noch Karten
     if (mKartenSpieler1.Count == 0)
     {
         if (mKartenRest.Count != 0)
         {
             DeckStructure.QuartettCard tmpcard = mKartenRest.First();
             mKartenSpieler1.Add(tmpcard);
             mKartenRest.Remove(tmpcard);
         }
         else
         {
             EndGame();
         }
     }
     label_KartenDu.Text = "Du hast noch " + mKartenSpieler1.Count.ToString() + " Karten!\nDu hast " + PunkteSpieler1 + " Punkte.";
     //Hat Spieler 2 noch Karten
     if (mKartenSpieler2.Count == 0)
     {
         if (mKartenRest.Count != 0)
         {
             DeckStructure.QuartettCard tmpcard = mKartenRest.First();
             mKartenSpieler1.Add(tmpcard);
             mKartenRest.Remove(tmpcard);
         }
         else
         {
             EndGame();
         }
     }
     label_KartenGegner.Text = "COM1 hat noch " + mKartenSpieler2.Count.ToString() + " Karten!\nCOM1 hat " + PunkteSpieler2 + " Punkte.";
     label_Status.Text       =
         "Es befinden sich noch " + mKartenRest.Count.ToString() + " Karten auf dem Restestapel!";
 }
 private void AddKarteToRest(DeckStructure.QuartettCard myCard)
 {
     mKartenSpieler1.Remove(CurrentCard);
     mKartenSpieler2.Remove(myCard);
     mKartenRest.Add(myCard);
     if (mKartenSpieler1.Count > 0)
     {
         CurrentCard = mKartenSpieler1.First();
     }
 }
        private void RemoveKarteFromMe()
        {
            mKartenSpieler1.Remove(CurrentCard);
            mKartenSpieler2.Add(CurrentCard);
            if (mKartenSpieler1.Count > 0)
            {
                CurrentCard = mKartenSpieler1.First();
            }

            PunkteSpieler2 += 10;
        }
        //Karten bekommen/ entfernen/ umdisponieren etc.
        private DeckStructure.QuartettCard GetKarteFromOpponent()
        {
            DeckStructure.QuartettCard myLocalCard = new DeckStructure.QuartettCard();
            Random nZufallszahl = new Random();

            if (mKartenSpieler2.Count != 0)
            {
                myLocalCard = mKartenSpieler2.ElementAt(nZufallszahl.Next(0, mKartenSpieler2.Count));
            }
            return(myLocalCard);
        }
        //todo Überprüfen,ob noch Karten da sind

        private void VergleicheKarte(DeckStructure.CardProperties eigenschaft)
        {
            //todo Karte vom Gegner bekommen
            DeckStructure.QuartettCard   karteDesGegners    = GetKarteFromOpponent();
            DeckStructure.CardProperties propertyDesGegners = new DeckStructure.CardProperties();
            if (karteDesGegners.cardProperties is null)
            {
                return;
            }
            foreach (DeckStructure.CardProperties tmpProperties in karteDesGegners.cardProperties)
            {
                if (tmpProperties.propertyName == eigenschaft.propertyName)
                {
                    propertyDesGegners = tmpProperties;
                }
            }

            //Vergleichen
            if (eigenschaft.greaterIsBetter)
            {
                if (eigenschaft.propertyValue > propertyDesGegners.propertyValue)
                {
                    //Ich bekomme die Karte
                    RemoveKarteFromOpponent(karteDesGegners);
                }
                else if (eigenschaft.propertyValue < propertyDesGegners.propertyValue)
                {
                    //Der Gegner bekommt die Karte
                    RemoveKarteFromMe();
                }
                else
                {
                    AddKarteToRest(karteDesGegners);
                }
            }
            else
            {
                if (eigenschaft.propertyValue > propertyDesGegners.propertyValue)
                {
                    //Der Gegner bekommt die Karte
                    RemoveKarteFromMe();
                }
                else if (eigenschaft.propertyValue < propertyDesGegners.propertyValue)
                {
                    //Ich bekomme die Karte
                    RemoveKarteFromOpponent(karteDesGegners);
                }
                else
                {
                    AddKarteToRest(karteDesGegners);
                }
            }
        }
 private void RemoveKarteFromOpponent(DeckStructure.QuartettCard myLocalCard)
 {
     mKartenSpieler2.Remove(myLocalCard);
     mKartenSpieler1.Add(myLocalCard);
     PunkteSpieler1 += 10;
 }
Esempio n. 7
0
        //todo Declare Current Quartett
        //Todo Save When all 4 Cards are done
        private Boolean SaveQuartettCard()
        {
            Boolean nResult = true;
            List <DeckStructure.CardProperties> nCardProperties = new List <DeckStructure.CardProperties>();

            DeckStructure.QuartettCard nCard = new DeckStructure.QuartettCard();
            try
            {
                if (textBox_CardName.Text != "")
                {
                    nCard.cardName = textBox_CardName.Text;
                }
                else
                {
                    nResult = false;
                }

                if (pictureBox_Image.ImageLocation != "")
                {
                    nCard.cardImagePath = pictureBox_Image.ImageLocation;
                    //todo Bilder in den Exortpfad kopieren
                    //todo Ordner Generieren, wenn nicht exitstiert
                    //todo da feste Ordnerstruktur, den Pfad nicht aus der XML auslesen
                    if (!Directory.Exists(mDeckPath))
                    {
                        Directory.CreateDirectory(mDeckPath);
                    }

                    string imageExportPath = mDeckPath + @"\" + mDeckName + @"\" + (mQuartetts.Count + 1).ToString() + @"\";
                    if (!Directory.Exists(imageExportPath))
                    {
                        Directory.CreateDirectory(imageExportPath);
                    }

                    //todo Dateiendung bekommen
                    String dateiendung = nCard.cardImagePath.Remove(0, nCard.cardImagePath.LastIndexOf("."));

                    File.Copy(nCard.cardImagePath, imageExportPath + (mQuartettCards.Count + 1).ToString() + dateiendung);
                }

                for (int i = 1; i < mProprtiesAmount + 1; i++)
                {
                    DeckStructure.CardProperties myCardProperties = new DeckStructure.CardProperties();
                    myCardProperties.propertyName         = mPropertyTextBoxList.ElementAt(i - 1).Text;
                    myCardProperties.propertyDisplayValue = mPropertyDisplayValueTextBoxList.ElementAt(i - 1).Text;
                    myCardProperties.propertyValue        = double.Parse(mPropertyValueTextBoxList.ElementAt(i - 1).Text);
                    myCardProperties.greaterIsBetter      = mCheckBoxList.ElementAt(i - 1).Checked;
                    nCardProperties.Add(myCardProperties);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                nResult = false;
            }

            if (nResult)
            {
                nCard.cardProperties = nCardProperties;
                mQuartettCards.Add(nCard);
            }
            return(nResult);
        }