示例#1
0
 public void UsunKarte(char w, char k, Talia talia1)
 {
     talia1.UwolnijKarte(new Karta(w, k));
     foreach (var karta in piki)
     {
         if (karta.Wysokosc == w && karta.Kolor == k)
         {
             piki.Remove(karta); break;
         }
     }
     foreach (var karta in kiery)
     {
         if (karta.Wysokosc == w && karta.Kolor == k)
         {
             kiery.Remove(karta); break;
         }
     }
     foreach (var karta in kara)
     {
         if (karta.Wysokosc == w && karta.Kolor == k)
         {
             kara.Remove(karta); break;
         }
     }
     foreach (var karta in trefle)
     {
         if (karta.Wysokosc == w && karta.Kolor == k)
         {
             trefle.Remove(karta); break;
         }
     }
     liczbaKart = piki.Count() + kiery.Count() + kara.Count() + trefle.Count;
     talia1.UwolnijKarte(new Karta(w, k));
 }
示例#2
0
 /// <summary>
 /// Tworzy nowe rozdanie po odczycie pliku XML
 /// </summary>
 public Rozdanie(RozdanieZapis r)
 {
     gracze    = new Gracze(r.gracze);
     talia     = new Talia(r.talia);
     numer     = r.numer;
     zalozenia = (((numer) - 1) / 4 + numer % 4) % 4;
     dealer    = numer % 4;
 }
示例#3
0
 /// <summary>
 /// Tworzy nowe rozdanie o podanym numerze
 /// </summary>
 public Rozdanie(int numerKon)
 {
     gracze    = new Gracze();
     talia     = new Talia();
     numer     = numerKon;
     zalozenia = (((numer) - 1) / 4 + numer % 4) % 4;
     dealer    = numer % 4;
     ostatnie  = new Stack <string>();
 }
示例#4
0
 public TaliaZapis(Talia t)
 {
     for (int i = 0; i < 4; i++)
     {
         for (int j = 0; j < 13; j++)
         {
             kartyWTalii.Add(t.kartyWTalii[j, i]);
         }
     }
 }
示例#5
0
/*        public char ZnajdzBlotke(char w, char k, Talia talia)
 *      {
 *          string wolne = "";
 *          if (k == 'S')
 *          {
 *              for(int i = 0; i < 8; i++)
 *              {
 *                  if(talia.kartyWTalii[i,3].Status == 0)
 *                  {
 *                      wolne += talia.kartyWTalii[i,3].Wysokosc;
 *                  }
 *              }
 *          }
 *          if (k == 'H')
 *          {
 *              for (int i = 0; i < 8; i++)
 *              {
 *                  if (talia.kartyWTalii[i, 2].Status == 0)
 *                  {
 *                      wolne += talia.kartyWTalii[i, 2].Wysokosc;
 *                  }
 *              }
 *          }
 *          if (k == 'D')
 *          {
 *              for (int i = 0; i < 8; i++)
 *              {
 *                  if (talia.kartyWTalii[i, 1].Status == 0)
 *                  {
 *                      wolne += talia.kartyWTalii[i, 1].Wysokosc;
 *                  }
 *              }
 *          }
 *          if (k == 'C')
 *          {
 *              for (int i = 0; i < 8; i++)
 *              {
 *                  if (talia.kartyWTalii[i, 0].Status == 0)
 *                  {
 *                      wolne += talia.kartyWTalii[i, 0].Wysokosc;
 *                  }
 *              }
 *          }
 *          var rand = new Random();
 *          if(wolne.Length != 0)
 *          {
 *              int r = rand.Next(0, wolne.Length - 1);
 *              return wolne[r];
 *          }
 *          else { return 'x'; }
 *      }*/
        public void DodajKarte1(char w, char k, Talia talia1)
        {
            //MessageBox.Show(Convert.ToString(w));
            //if (w == 'X') { w = ZnajdzBlotke(w, k, talia1); }
            //if( w == 'x') { break; }
            talia1.ZajmijKarte(new Karta(w, k));
            if (k == 'S')
            {
                if (piki.Count() == 0)
                {
                    piki.AddFirst(new Karta(w, k));
                }
                else
                {
                    foreach (var karta in piki)
                    {
                        if (talia1.wartosci.IndexOf(karta.Wysokosc) < talia1.wartosci.IndexOf(w))
                        {
                            piki.AddBefore(piki.Find(karta), new Karta(w, k));
                            break;
                        }
                        if (karta == piki.Last())
                        {
                            piki.AddAfter(piki.Find(karta), new Karta(w, k)); break;
                        }
                    }
                }
            }
            if (k == 'H')
            {
                if (kiery.Count() == 0)
                {
                    kiery.AddFirst(new Karta(w, k));
                }
                else
                {
                    foreach (var karta in kiery)
                    {
                        if (talia1.wartosci.IndexOf(karta.Wysokosc) < talia1.wartosci.IndexOf(w))
                        {
                            kiery.AddBefore(kiery.Find(karta), new Karta(w, k));
                            break;
                        }
                        if (karta == kiery.Last())
                        {
                            kiery.AddAfter(kiery.Find(karta), new Karta(w, k)); break;
                        }
                    }
                }
            }
            if (k == 'D')
            {
                if (kara.Count() == 0)
                {
                    kara.AddFirst(new Karta(w, k));
                }
                else
                {
                    foreach (var karta in kara)
                    {
                        if ((talia1.wartosci.IndexOf(karta.Wysokosc) < talia1.wartosci.IndexOf(w)))
                        {
                            kara.AddBefore(kara.Find(karta), new Karta(w, k));
                            break;
                        }
                        if (karta == kara.Last())
                        {
                            kara.AddAfter(kara.Find(karta), new Karta(w, k)); break;
                        }
                    }
                }
            }
            if (k == 'C')
            {
                if (trefle.Count() == 0)
                {
                    trefle.AddFirst(new Karta(w, k));
                }
                else
                {
                    foreach (var karta in trefle)
                    {
                        if (talia1.wartosci.IndexOf(karta.Wysokosc) < talia1.wartosci.IndexOf(w))
                        {
                            trefle.AddBefore(trefle.Find(karta), new Karta(w, k));
                            break;
                        }
                        if (karta == trefle.Last())
                        {
                            trefle.AddAfter(trefle.Find(karta), new Karta(w, k)); break;
                        }
                    }
                }
            }
            liczbaKart = piki.Count() + kiery.Count() + kara.Count() + trefle.Count;
        }