Ejemplo n.º 1
0
 public static void CPlay()
 {
     if (((Gra.Human.Count() == 0) || (Gra.Computer.Count() == 0)) && (Gra.Rozgrywka))
     {
         //Wywolanie okienka "Wygrales/Przegrales".
         bool kto = (Gra.Human.Count() == 0);
         Program.okno.Enabled = false;
         WinLose x = new WinLose(Program.okno, kto);
         x.ShowDialog();
         Gra.CleanGame();
         return;
     }
     bool juzPo = true;
     for (int i = 0; i < Computer.Count(); i++)
     {
         if (Computer.ElementAt(i).czyMoznaPolozycNa(Zagrane.Peek()))
         {
             int ilosc = 1;
             Zagrane.Push(Computer.ElementAt(i));
             Computer.RemoveAt(i);
             juzPo = false;
             gracz = false;
             Zagrane.Peek().funkcja(ilosc);
             gracz = true;
             break;
         }
     }
     if (juzPo)
     {
         Karta dodana;
         if (Gra.Ukryte.Count() > 1)
         {
             dodana = Gra.Ukryte.Pop();
         }
         else
         {
             dodana = Gra.Ukryte.Pop();
             Karta.utworzStosikZostawJeden(Gra.Zagrane, Gra.Ukryte);
         }
         if (dodana.czyMoznaPolozycNa(Zagrane.Peek()))
         {
             int ilosc = 1;
             Zagrane.Push(dodana);
             gracz = true;
             Zagrane.Peek().funkcja(ilosc);
         }
         else
         {
             Computer.Add(dodana);
             Karta.posortuj(Computer);
         }
     }
 }
Ejemplo n.º 2
0
 //METODY
 public override void funkcja()
 {
     if (Gra.gracz) //CZLOWIEK
     {
         if (!zadanie) //Wyznacza zadana karte
         {
             Program.okno.wywolajAs();
         }
         else
         {
             List<Karta> pasujace = Gra.Human.FindAll(
                delegate(Karta k)
                {
                    if ((k.getKolor() == zadany)&&(!(k.czyFunkcyjna())))
                        return true;
                    return false;
                });
             Karta.posortuj(pasujace);
             if (pasujace.Count() != 0) //GRACZ MA PASUJACE KARTY
             {
                 int indeksik = Gra.Human.FindIndex(delegate(Karta k)
                 {
                     if ((k.getKolor() == zadany) && (!(k.czyFunkcyjna())))
                         return true;
                     return false;
                 });
                 Gra.Zagrane.Push(Gra.Human.ElementAt(indeksik));
                 Gra.Human.RemoveAt(indeksik);
                 Program.okno.makeInfoOkno("Zazadano od Ciebie koloru " + zadany + " za pomoca Asa. Dales "+Gra.Zagrane.Peek().getWartosc()+" "+Gra.Zagrane.Peek().getKolor()+"!", "Zadanie z Asa");
             }
             else //GRACZ NIE MA PASUJACYCH
             {
                 Program.okno.makeInfoOkno("Zazadano od Ciebie koloru " + zadany + " za pomoca Asa. Nie miales pasujacej karty!", "Zadanie z Asa");
             }
             zadanie = false;
             Gra.CPlay();
         }
     }
     else //KOMPUTER
     {
         if (!zadanie) //Zagral waleta i wyznacza zadanie
         {
             Random losowator = new Random();
             switch (losowator.Next(4))
             {
                 case 0: KartaAs.zadany = Kolor.Pik; break;
                 case 1: KartaAs.zadany = Kolor.Karo; break;
                 case 2: KartaAs.zadany = Kolor.Trefl; break;
                 case 3: KartaAs.zadany = Kolor.Kier; break;
             }
             KartaAs.zadanie = true;
             Gra.gracz = true;
             if (((Gra.Human.Count() == 0) || (Gra.Computer.Count() == 0)) && (Gra.Rozgrywka))
             {
                 //Wywolanie okienka "Wygrales/Przegrales".
                 bool kto = (Gra.Human.Count() == 0);
                 Program.okno.Enabled = false;
                 WinLose x = new WinLose(Program.okno, kto);
                 x.ShowDialog();
                 Gra.CleanGame();
                 return;
             }
             this.funkcja();
         }
         else
         {
             List<Karta> pasujace = Gra.Computer.FindAll(
                delegate(Karta k)
                {
                    if ((k.getKolor() == zadany) && (!(k.czyFunkcyjna())))
                        return true;
                    return false;
                });
             Karta.posortuj(pasujace);
             if (pasujace.Count() != 0) //GRACZ MA PASUJACE KARTY
             {
                 int indeksik = Gra.Computer.FindIndex(delegate(Karta k)
                 {
                     if ((k.getKolor() == zadany) && (!(k.czyFunkcyjna())))
                         return true;
                     return false;
                 });
                 Gra.Zagrane.Push(Gra.Computer.ElementAt(indeksik));
                 Gra.Computer.RemoveAt(indeksik);
             }
             zadanie = false;
             Gra.gracz = true;
         }
     }
 }
Ejemplo n.º 3
0
 //METODY
 public override void funkcja()
 {
     if (Gra.gracz) //CZLOWIEK
     {
         if (!zadanie) //Wyznacza zadana karte
         {
             Program.okno.wywolajWalet();
         }
         else
         {
             List<Karta> pasujace = Gra.Human.FindAll(
                delegate(Karta k)
                {
                    if (k.getWartosc() == zadana)
                        return true;
                    return false;
                });
             Karta.posortuj(pasujace);
             if (pasujace.Count() != 0) //GRACZ MA PASUJACE KARTY
             {
                 int indeksik = Gra.Human.FindIndex(delegate(Karta k)
                 {
                     if (k.getWartosc() == zadana)
                         return true;
                     return false;
                 });
                 Gra.Zagrane.Push(Gra.Human.ElementAt(indeksik));
                 Gra.Human.RemoveAt(indeksik);
                 Program.okno.makeInfoOkno("Zazadano od Ciebie karty " + zadana + " za pomoca Waleta. Dales ja!", "Zadanie z Waleta");
             }
             else //GRACZ NIE MA PASUJACYCH
             {
                 Program.okno.makeInfoOkno("Zazadano od Ciebie karty " + zadana + " za pomoca Waleta. Nie miales pasujacej!", "Zadanie z Waleta");
             }
             zadanie = false;
             Gra.CPlay();
         }
     }
     else //KOMPUTER
     {
         if (!zadanie) //Zagral waleta i wyznacza zadanie
         {
             Random losowator = new Random();
             switch (losowator.Next(8))
             {
                 case 0: KartaWalet.zadana = Wartosc.k4; break;
                 case 1: KartaWalet.zadana = Wartosc.k5; break;
                 case 2: KartaWalet.zadana = Wartosc.k6; break;
                 case 3: KartaWalet.zadana = Wartosc.k7; break;
                 case 4: KartaWalet.zadana = Wartosc.k8; break;
                 case 5: KartaWalet.zadana = Wartosc.k9; break;
                 case 6: KartaWalet.zadana = Wartosc.k10; break;
                 case 7: KartaWalet.zadana = Wartosc.kDama; break;
             }
             KartaWalet.zadanie = true;
             Gra.gracz = true;
             if (((Gra.Human.Count() == 0) || (Gra.Computer.Count() == 0)) && (Gra.Rozgrywka))
             {
                 //Wywolanie okienka "Wygrales/Przegrales".
                 bool kto = (Gra.Human.Count() == 0);
                 Program.okno.Enabled = false;
                 WinLose x = new WinLose(Program.okno, kto);
                 x.ShowDialog();
                 Gra.CleanGame();
                 return;
             }
             this.funkcja();
         }
         else
         {
             List<Karta> pasujace = Gra.Computer.FindAll(
                delegate(Karta k)
                {
                    if (k.getWartosc() == zadana)
                        return true;
                    return false;
                });
             Karta.posortuj(pasujace);
             if (pasujace.Count() != 0) //GRACZ MA PASUJACE KARTY
             {
                 int indeksik = Gra.Computer.FindIndex(delegate(Karta k)
                 {
                     if (k.getWartosc() == zadana)
                         return true;
                     return false;
                 });
                 Gra.Zagrane.Push(Gra.Computer.ElementAt(indeksik));
                 Gra.Computer.RemoveAt(indeksik);
             }
             zadanie = false;
             Gra.gracz = true;
         }
     }
 }
Ejemplo n.º 4
0
 public static void CPlay(Action<int> funkcja, int ile)
 {
     if (((Gra.Human.Count() == 0) || (Gra.Computer.Count() == 0)) && (Gra.Rozgrywka))
     {
         //Wywolanie okienka "Wygrales/Przegrales".
         bool kto = (Gra.Human.Count() == 0);
         Program.okno.Enabled = false;
         WinLose x = new WinLose(Program.okno, kto);
         x.ShowDialog();
         Gra.CleanGame();
         return;
     }
     funkcja(ile);
 }
Ejemplo n.º 5
0
 public static void HPlay(List<Karta> wybrane)
 {
     gracz = true;
     if (((Gra.Human.Count() == 0) || (Gra.Computer.Count() == 0)) && (Gra.Rozgrywka))
     {
         //Wywolanie okienka "Wygrales/Przegrales".
         bool kto = (Gra.Human.Count() == 0);
         Program.okno.Enabled = false;
         WinLose x = new WinLose(Program.okno, kto);
         x.ShowDialog();
         Gra.CleanGame();
         return;
     }
     int ilosc = wybrane.Count();
     for (int prz = ilosc - 1; prz >= 0; prz--)
     {
         Zagrane.Push(wybrane.ElementAt(prz));
     }
     bool okok=false;
     if (Zagrane.Peek().czyFunkcyjna())
         okok=true;
     CPlay(new Action<int>(Zagrane.Peek().funkcja),ilosc);
     if (!okok)
         CPlay();
     gracz = true;
 }
Ejemplo n.º 6
0
        private void PlayButton_Click(object sender, EventArgs e)
        {
            if (!Gra.Rozgrywka)
                return;

            if (((Gra.Human.Count() == 0) || (Gra.Computer.Count() == 0)) && (Gra.Rozgrywka))
            {
                //Wywolanie okienka "Wygrales/Przegrales".
                bool kto = (Gra.Human.Count() == 0);
                Enabled = false;
                WinLose x = new WinLose(this, kto);
                x.ShowDialog();
                Gra.CleanGame();
                return;
            }

                //ODZNACZENIE ZNACZKOW
                HumanChoose1.Checked = false;
                HumanChoose2.Checked = false;
                HumanChoose3.Checked = false;
                HumanChoose4.Checked = false;
                HumanChoose5.Checked = false;

                int ile_zaznaczonych = 0;
                List<Karta> grane = new List<Karta>();
                int techno = 5;
                if (Gra.Human.Count() < 5)
                    techno = Gra.Human.Count();

                //SKOPIOWANIE ZAZNACZONYCH DO grane
                for (int i = techno - 1; i >= 0; i--)
                {
                    if (Gra.Human[left + i].getWybrana())
                    {
                        ile_zaznaczonych++;
                        grane.Add(Gra.Human[left + i]);
                        grane.Last().setWybrana(false);
                        Gra.Human.RemoveAt(left + i);
                    }
                }
                bool blad = false;
                //SPRAWDZENIE, CZY ILOSC ZAZNACZONYCH JEST POPRAWNA
                if ((ile_zaznaczonych <= 4) && (ile_zaznaczonych > 0))
                {
                    for (int a = 0; a < ile_zaznaczonych; a++)
                    {
                        for (int b = a + 1; b < ile_zaznaczonych; b++)
                            if (!(grane[a].getWartosc() == grane[b].getWartosc()))
                            {
                                blad = true;
                                break;
                            }
                    }
                    //JESLI WSZYSTKIE SA TEJ SAMEJ WARTOSCI
                    if (!blad)
                    {
                        Wartosc kladziona = grane.First().getWartosc();
                        if (grane.First().czyMoznaPolozycNa(Gra.Zagrane.Peek()))
                        {
                            Gra.HPlay(grane);
                            Gra.gracz = true;
                        }
                        else
                        {
                            for (int licznik = ile_zaznaczonych - 1; licznik >= 0; licznik--)
                            {
                                Gra.Human.Add(grane[licznik]);
                                grane.RemoveAt(licznik);
                            }
                            Karta.posortuj(Gra.Human);
                        }
                    }
                    else
                    {
                        for (int licznik = ile_zaznaczonych - 1; licznik >= 0; licznik--)
                        {
                            Gra.Human.Add(grane[licznik]);
                            grane.RemoveAt(licznik);
                        }
                        Karta.posortuj(Gra.Human);
                    }
                }
                else
                {
                    for (int licznik = ile_zaznaczonych - 1; licznik >= 0; licznik--)
                    {
                        Gra.Human.Add(grane[licznik]);
                        grane.RemoveAt(licznik);
                    }
                    Karta.posortuj(Gra.Human);
                }
                left = 0;
                look_cards();
        }