示例#1
0
 public void salji(int c, string pozicija, int brojKlika, string prvaFigura, int staraKolona, int staraVrsta, string pozicijaMat)
 {
     message = c + "," + pozicija + "," + brojKlika.ToString() + "," + prvaFigura + "," + staraKolona + "," + staraVrsta + "," + pozicijaMat;
     //var message = Console.ReadLine(); //saljemo
     if (pozicijaMat == "sahmat")
     {
         replyMsg = client.WriteLineAndGetReply(message, TimeSpan.FromSeconds(1)); //dobijena
         Kraj kr = new Kraj();
         kr.Show();
     }
     else if (c != 1)
     {
         while (message != null)
         {
             replyMsg = client.WriteLineAndGetReply(message, TimeSpan.FromSeconds(1000)); //dobijena
             if (replyMsg != null)
             {
                 Console.WriteLine(replyMsg.MessageString);
                 string   k   = replyMsg.MessageString;
                 string[] niz = k.Split(',');
                 Figura.Instance().zameni(int.Parse(niz[4]), int.Parse(niz[5]), int.Parse(niz[0]), int.Parse(niz[1]));
                 prinljeno = replyMsg.MessageString;
                 if (niz[6] == "sahmat")
                 {
                     Kraj kr = new Kraj();
                     kr.Show();
                 }
             }
             message = Console.ReadLine();
         }
     }
 }
示例#2
0
        public void server1()
        {
            //dodaj figuru za menjanje ovde
            server.Delimiter              = 0x13;
            server.DelimiterDataReceived += (sender, msg) =>
            {
                // Console.WriteLine(msg.MessageString);

                string   k   = msg.MessageString;
                string[] niz = k.Split(',');
                primljeno1 = niz[5] + "," + niz[6] + "," + niz[1] + "," + niz[2];
                Console.WriteLine(primljeno1);
                if (primljeno1 == "0,0,0,0")
                {
                    server.Broadcast(partija);
                }
                Sah sahhhh = (Sah)Application.OpenForms["Sah"];
                sahhhh.pasvaluec = 1;
                Figura.Instance().zameni(int.Parse(niz[5]), int.Parse(niz[6]), int.Parse(niz[1]), int.Parse(niz[2]));
                if (niz[7] == "sahmat")
                {
                    sahmat = "sahmat";
                    //  Kraj kr = new Kraj();
                    // kr.Show();
                }
            };
            clientsConnected = server.ConnectedClientsCount;
            //Console.WriteLine("number of connected clients is: " + clientsConnected);
            //var listeningIps = server.GetListeningIPs();
            //Console.WriteLine("number of connected clients is: " + listeningIps);
            //var listeningV4Ips = server.GetListeningIPs().Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
            //Console.WriteLine("number of connected clients is: " + listeningV4Ips);
        }
示例#3
0
 public int pomeri(int kolona, int vrsta, int novaKolona, int novaVrsta, string napadnutaFigura)
 {
     if ((napadnutaFigura != null && ((novaKolona == kolona + 1 && novaVrsta == vrsta - 1 && novaVrsta == 1) || (novaKolona == kolona - 1 && novaVrsta == vrsta - 1 && novaVrsta == 1))) ||
         (kolona == novaKolona && vrsta == (novaVrsta + 1) && napadnutaFigura == null && novaVrsta == 1))
     {
         return(3);
     }
     else
     if (napadnutaFigura != null && ((novaKolona == kolona + 1 && novaVrsta == vrsta - 1) || (novaKolona == kolona - 1 && novaVrsta == vrsta - 1)))
     {
         return(2);
     }
     if (kolona == novaKolona && vrsta == 7 && novaVrsta == 5 && Figura.Instance().vratiFiguru(kolona, 6) == null && napadnutaFigura == null)
     {
         return(1);
     }
     if (kolona == novaKolona && vrsta == (novaVrsta + 1) && napadnutaFigura == null)
     {
         return(1);
     }
     else
     {
         return(0);
     }
 }
示例#4
0
 public static Figura Instance()
 {
     if (instace == null)
     {
         instace = new Figura();
     }
     return(instace);
 }
示例#5
0
        public static void IzpišiPotezeEneFigure(Figura F, List<int[]> poteze)
        {
            string izpis = F.IzpisFigure() + ": ";
            foreach (int[] poteza in poteze)
            {
                izpis += "" + poteza[0] + poteza[1] + " , ";
            }

            Console.WriteLine(izpis);
        }
示例#6
0
 private void sacuvaj_Click(object sender, EventArgs e)
 {
     if (i == 0)
     {
         sacuvajText.Visible = true;
         sacuvajLabel.Text   = "Enter name";
         sacuvaj.Text        = "Ok";
         i = 1;
     }
     else
     {
         baza.dodaj(sacuvajText.Text, Figura.Instance().sss1());
         sacuvajText.Visible = true;
         sacuvajLabel.Text   = " ";
         sacuvaj.Text        = "Ok";
         i = 1;
     }
 }
示例#7
0
        public int pomeri(int kolona, int vrsta, int novaKolona, int novaVrsta, string napadnutaFigura)
        {
            if (napadnutaFigura != null && (novaKolona == kolona || novaVrsta == vrsta))
            {
                if (kolona == novaKolona)  //na gore
                {
                    if (vrsta < novaVrsta)
                    {
                        for (int i = vrsta + 1; i < novaVrsta; i++)
                        {
                            if (Figura.Instance().vratiFiguru(kolona, i) != null)
                            {
                                return(0);
                            }
                        }
                        return(2);
                    }
                    else // na dole
                    {
                        for (int i = vrsta - 1; i > novaVrsta; i--)
                        {
                            if (Figura.Instance().vratiFiguru(kolona, i) != null)
                            {
                                return(0);
                            }
                        }
                        return(2);
                    }
                }
                else if (vrsta == novaVrsta)  //desno
                {
                    if (kolona < novaKolona)
                    {
                        for (int i = kolona + 1; i < novaKolona; i++)
                        {
                            if (Figura.Instance().vratiFiguru(i, vrsta) != null)
                            {
                                return(0);
                            }
                        }
                        return(2);
                    }
                    else  //levo
                    {
                        for (int i = kolona - 1; i > novaKolona; i--)
                        {
                            if (Figura.Instance().vratiFiguru(i, vrsta) != null)
                            {
                                return(0);
                            }
                        }
                        return(2);
                    }
                }
            }
            else if ((kolona == novaKolona || vrsta == novaVrsta) && napadnutaFigura == null)
            {
                if (kolona == novaKolona)  //na gore
                {
                    if (vrsta < novaVrsta)
                    {
                        for (int i = vrsta + 1; i < novaVrsta; i++)
                        {
                            if (Figura.Instance().vratiFiguru(kolona, i) != null)
                            {
                                return(0);
                            }
                        }
                        return(1);
                    }
                    else // na dole
                    {
                        for (int i = vrsta - 1; i >= novaVrsta; i--)
                        {
                            if (Figura.Instance().vratiFiguru(kolona, i) != null)
                            {
                                return(0);
                            }
                        }
                        return(1);
                    }
                }

                else if (vrsta == novaVrsta)  //desno
                {
                    if (kolona < novaKolona)
                    {
                        for (int i = kolona + 1; i < novaKolona; i++)
                        {
                            if (Figura.Instance().vratiFiguru(i, vrsta) != null)
                            {
                                return(0);
                            }
                        }
                        return(1);
                    }
                    else  //levo
                    {
                        for (int i = kolona - 1; i >= novaKolona; i--)
                        {
                            if (Figura.Instance().vratiFiguru(i, vrsta) != null)
                            {
                                return(0);
                            }
                        }
                        return(1);
                    }
                }
            }
            return(0);
        }
示例#8
0
        static void Main(string[] args)
        {
            Console.WriteLine("Play game?(0=no)");
            string yes = "yes";

            yes = Console.ReadLine();
            Igrac bijeli = new Igrac(Boja.Bijeli);
            Igrac crni   = new Igrac(Boja.Crni);
            Ploca ploca  = new Ploca();

            ploca.IspisiPlocu();

            bool gotovo = false;

            //gotovo = ploca.IgraGotova();
            while (!gotovo)
            {
                Pozicija poz = new Pozicija();
                Console.WriteLine("Potez: " + (Ploca.Potez + 1));
                //Figura figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(4));
                //figura.PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(5), ploca);
                //figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(3));
                //figura.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(5), ploca);
                //ploca.IspisiPlocu();
                Console.WriteLine("Bijeli na potezu");
                bool   ok          = false;
                Figura figura      = null;
                string potez       = "";
                string potezIgraca = "";
                while (!ok)
                {
                    potezIgraca = "";
                    Console.Write("Odaberite figuru iz polja (npr.A1):");
                    potez        = Console.ReadLine();
                    poz          = ploca.PozicijaZaPolje(potez);
                    potezIgraca += potez;
                    figura       = ploca.VratiFiguru(poz);
                    if (figura == null)
                    {
                        continue;
                    }

                    Console.Write("Odigrajte potez (npr. A3):");
                    potez        = Console.ReadLine();
                    potezIgraca += potez;
                    poz          = ploca.PozicijaZaPolje(potez);
                    try
                    {
                        bijeli.OdigrajPotez(figura, poz, ploca);
                        ok = true;
                        ploca.potezi.Add(potezIgraca);
                    }
                    catch (Exception ex)
                    {
                        ok = false;
                        Console.WriteLine(ex.Message);
                    }
                }


                ploca.IspisiPlocu();

                Console.WriteLine("Crni na potezu");
                ok = false;

                while (!ok)
                {
                    potezIgraca = "";
                    Console.Write("Odaberite figuru iz polja (npr.A1):");
                    potez        = Console.ReadLine();
                    potezIgraca += potez;
                    poz          = ploca.PozicijaZaPolje(potez);
                    figura       = ploca.VratiFiguru(poz);
                    if (figura != null)
                    {
                        ok = true;
                    }
                    Console.Write("Odigrajte potez (npr. A3):");
                    potez        = Console.ReadLine();
                    potezIgraca += potez;
                    poz          = ploca.PozicijaZaPolje(potez);
                    try
                    {
                        crni.OdigrajPotez(figura, poz, ploca);
                        ok = true;
                        ploca.potezi.Add(potezIgraca);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        ok = false;
                    }
                }



                ploca.IspisiPlocu();
                Ploca.Potez++;
            }
        }
示例#9
0
        private void Sah_MouseClick(object sender, MouseEventArgs e)
        {
            base.OnMouseMove(e);
            int brojKolone, brojVrste;

            brojKolone = (e.X) / 60;
            brojVrste  = 8 - e.Y / 60 + 1;
            //label1.Text= Figura.Instance().vratiFiguru(brojKolone,brojVrste);
            if (brojKolone < 1 || brojKolone > 8 || brojVrste < 1 || brojVrste > 8)  // u slucaju da je kliknuto van table
            {
                Console.WriteLine("greska");
            }
            else if (brojKlika == 1)  // beli igrac bira figuru koju zeli pomeriti
            {
                prvaFigura = Figura.Instance().nazivFigure(brojKolone, brojVrste, Figura.Instance().vratiFiguru(brojKolone, brojVrste));
                if (Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB6" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB7" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB2" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB5" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB8" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB3" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pB4" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "tB1" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "tB2" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "koB1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "koB2" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "lB1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "lB2" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "krB1" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "kB1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zKrB" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zKoB" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zTB" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zLB")
                {
                    brojKlika = 2;
                }
            }
            else if (brojKlika == 2)  // beli igrac pomera izabranu figuru
            {
                if (c == 2)
                {
                    odredi1(brojKolone, brojVrste);  // odredjivanje dali je moguce pomeriti belu figuru na odabrano polje
                }
            }

            //CRNI JE NA POTEZU
            else if (brojKlika == 3)
            {
                prvaFigura = Figura.Instance().nazivFigure(brojKolone, brojVrste, Figura.Instance().vratiFiguru(brojKolone, brojVrste));
                if (Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC6" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC7" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC2" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC5" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC8" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC3" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "pC4" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "tC1" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "tC2" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "koC1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "koC2" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "lC1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "lC2" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "krC1" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "kC1" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zKrC" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zKoC" ||
                    Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zTC" || Figura.Instance().vratiFiguru(brojKolone, brojVrste) == "zLC")
                {
                    brojKlika = 4;
                }
            }
            else if (brojKlika == 4)
            {
                if (c == 1)
                {
                    odredi2(brojKolone, brojVrste);
                    brojKlika = 3;
                    c         = 2;
                }
            }

            //else if(brojKlika==5)
            //{
            //    if(e.X > 310 && e.Y >= 80 && e.Y < 140 && e.X < 460)
            //    {
            //        zamenaBf.Visible = false;
            //        fdisable();
            //        //brojKlika = 3;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zKrB.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zKrB.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 1);
            //        //Client.Instance().salji(c, 0 +","+1 , brojKlika, prvaFigura, kolonaZamena , vrstaZamena);
            //        brojKlika = 1;
            //    }
            //    else if (e.X > 310 && e.Y >= 140 && e.Y<200 && e.X<460)
            //    {
            //        zamenaBf.Visible = false;
            //        fdisable();
            //        brojKlika = 3;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zKoB.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zKoB.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 2);
            //    }
            //    else if (e.X > 310 && e.Y >= 200 && e.Y < 260 && e.X < 460)
            //    {
            //        zamenaBf.Visible = false;
            //        fdisable();
            //        brojKlika = 3;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zTB.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zTB.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 3);
            //    }
            //    else if (e.X > 310 && e.Y >= 260 && e.Y < 320 && e.X < 460)
            //    {
            //        zamenaBf.Visible = false;
            //        fdisable();
            //        brojKlika = 3;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zLB.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zLB.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 4);
            //    }
            //}

            //else if(brojKlika==6)
            //{
            //    if (e.X > 310 && e.Y >= 280 && e.Y < 340 && e.X < 460)
            //    {
            //        zamenaCf.Visible = false;
            //        fdisable();
            //        brojKlika = 1;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zKrC.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zKrC.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 5);
            //    }
            //    else if (e.X > 310 && e.Y >= 340 && e.Y < 400 && e.X < 460)
            //    {
            //        zamenaCf.Visible = false;
            //        fdisable();
            //        brojKlika = 1;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zKoC.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zKoC.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 6);
            //    }
            //    else if (e.X > 310 && e.Y >= 400 && e.Y < 460 && e.X < 460)
            //    {
            //        zamenaCf.Visible = false;
            //        fdisable();
            //        brojKlika = 1;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zTC.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zTC.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 7);
            //    }
            //    else if (e.X > 310 && e.Y >= 460 && e.Y < 520 && e.X < 460)
            //    {
            //        zamenaCf.Visible = false;
            //        fdisable();
            //        brojKlika = 1;
            //        string kz = Figura.Instance().vratiFiguru(kolonaZamena, vrstaZamena);
            //        zLC.Location = new Point(Figura.Instance().kolonaZaFiguru(kz), Figura.Instance().vrstaZaFiguru(kz));
            //        zLC.Visible = true;
            //        Figura.Instance().izvrsiZamenu(kolonaZamena, vrstaZamena, 0, 8);
            //    }
            //}
        }
示例#10
0
 public void odredi2(int brojKolone, int brojVrste)
 {
     if (Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC1" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC2" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC3" ||
         Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC4" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC5" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC6" ||
         Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC7" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pC8" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "tC1" ||
         Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "tC2" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "koC1" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "koC2" ||
         Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "lC1" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "lC2" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "krC1" ||
         Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "kC1" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "izmeniPiona" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zKrC" ||
         Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zKoC" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zTC" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zLC")
     {
         if (Figura.Instance().napadnutCrniKralj(brojKolone, brojVrste) == 1)
         {
             //if (Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "izmeniPiona")
             //{
             //    label1.Text = "izvrsi zamenu";
             //    ((PictureBox)this.Controls[Figura.Instance().vratiFiguru(Figura.Instance().staraKolona(), Figura.Instance().staraVrsta())]).Location = new Point(brojKolone * 60, (9 - brojVrste) * 60);
             //    Figura.Instance().zameni(Figura.Instance().staraKolona(), Figura.Instance().staraVrsta(), brojKolone, brojVrste);
             //    zamenaCf.Visible = true;
             //    kolonaZamena = brojKolone;
             //    vrstaZamena = brojVrste;
             //    brojKlika = 6;
             //}
             //else
             //{
             ((PictureBox)this.Controls[Figura.Instance().odrediFiguru(brojKolone, brojVrste)]).Location = new Point(brojKolone * 60, (9 - brojVrste) * 60);
             Figura.Instance().zameni(Figura.Instance().staraKolona(), Figura.Instance().staraVrsta(), brojKolone, brojVrste);
             if (Figura.Instance().mat(brojKolone, brojVrste) == 0)
             {
                 label1.Text = "sahmat";
                 pozicijamat = "sahmat";
                 Kraj k = new Kraj();
                 k.Show();
             }
             Server.Instance().salji(brojKolone + "," + brojVrste, brojKlika, prvaFigura, Figura.Instance().staraKolona(), Figura.Instance().staraVrsta(), c, pozicijamat);
             baza.dodajAutomatski(Figura.Instance().sss1());
             brojKlika = 3;
             //}
         }
         else
         {
             brojKlika = 3;
         }
     }
     // NAPADANJE FIGURA
     else
     if (prvaFigura != null && (prvaFigura == "pC1" || prvaFigura == "pC2" || prvaFigura == "pC3" || prvaFigura == "pC4" ||
                                prvaFigura == "pC4" || prvaFigura == "pC5" || prvaFigura == "pC6" || prvaFigura == "pC7" || prvaFigura == "pC8" ||
                                prvaFigura == "tC1" || prvaFigura == "tC2" || prvaFigura == "koC1" || prvaFigura == "koC2" || prvaFigura == "lC1" ||
                                prvaFigura == "lC2" || prvaFigura == "krC1" || prvaFigura == "kC1" || prvaFigura == "zKrC" || prvaFigura == "zKoC" ||
                                prvaFigura == "zTC" || prvaFigura == "zLC"))
     {
         if (Figura.Instance().odrediFiguru(brojKolone, brojVrste) != null && (Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB1" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB2" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB6" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB3" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB7" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB4" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB8" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "pB5" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "tB1" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "tB2" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "koB1" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "koB2" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "lB1" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "lB2" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "krB1" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "kB1" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zKrB" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zKoB" || Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zTB" ||
                                                                               Figura.Instance().odrediFiguru(brojKolone, brojVrste) == "zLB"))
         {
             try
             {
                 if (Figura.Instance().napadnutCrniKralj(brojKolone, brojVrste) == 1)
                 {
                     ((PictureBox)this.Controls[prvaFigura]).Location = ((PictureBox)this.Controls[Figura.Instance().odrediFiguru(brojKolone, brojVrste)]).Location;
                     ((PictureBox)this.Controls[Figura.Instance().odrediFiguru(brojKolone, brojVrste)]).Visible = false;
                     Figura.Instance().zameni(Figura.Instance().staraKolona(), Figura.Instance().staraVrsta(), brojKolone, brojVrste);
                     if (Figura.Instance().mat(brojKolone, brojVrste) == 0)
                     {
                         label1.Text = "sahmat";
                         pozicijamat = "sahmat";
                         Kraj k = new Kraj();
                         k.Show();
                     }
                     Server.Instance().salji(brojKolone + "," + brojVrste, brojKlika, prvaFigura, Figura.Instance().staraKolona(), Figura.Instance().staraVrsta(), c, pozicijamat);
                     baza.dodajAutomatski(Figura.Instance().sss1());
                     brojKlika = 1;
                 }
                 else
                 {
                     brojKlika = 1;
                 }
             }
             catch { }
         }
         else
         {
             brojKlika = 3;
         }
     }
 }
示例#11
0
        private void Sah_Paint(object sender, PaintEventArgs e)
        {
            Graphics o = CreateGraphics();
            // Brush black = new SolidBrush(Color.Black);
            //Brush yellow = new SolidBrush(Color.Yellow);
            Brush green = new SolidBrush(Color.Green);

            // Pen red1 = new Pen(Color.Red);
            o.FillRectangle(green, t.sirinaX() / 3 * 2, t.visinaY(), t.sirinaX() / 3, t.visinaY() * 8);
            o.FillRectangle(green, t.sirinaX() / 3 * 2, t.visinaY() * 9, t.sirinaX() * 8 + t.sirinaX() / 3, t.sirinaX() / 3);
            //int k = 0;
            //for (int i = 1; i <= 8; i++)
            //{
            //    for (int j = 1; j <= 8; j++)
            //    {
            //        k++;
            //        if (k % 2 == 0 && i % 2 == 0)
            //            o.FillRectangle(yellow, i * t.sirinaX(), j * t.visinaY(), t.sirinaX(), t.visinaY());
            //        else if (k % 2 != 0 && i % 2 == 0)
            //            o.FillRectangle(black, i * t.sirinaX(), j * t.visinaY(), t.sirinaX(), t.visinaY());
            //        else if (k % 2 == 0 && i % 2 != 0)
            //            o.FillRectangle(black, i * t.sirinaX(), j * t.visinaY(), t.sirinaX(), t.visinaY());
            //        else if (k % 2 != 0 && i % 2 != 0)
            //            o.FillRectangle(yellow, i * t.sirinaX(), j * t.visinaY(), t.sirinaX(), t.visinaY());
            //    }
            //}
            pB1.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB1"), Figura.Instance().vrstaZaFiguru("pB1"));
            pB2.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB2"), Figura.Instance().vrstaZaFiguru("pB2"));
            pB3.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB3"), Figura.Instance().vrstaZaFiguru("pB3"));
            pB4.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB4"), Figura.Instance().vrstaZaFiguru("pB4"));
            pB5.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB5"), Figura.Instance().vrstaZaFiguru("pB5"));
            pB6.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB6"), Figura.Instance().vrstaZaFiguru("pB6"));
            pB7.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB7"), Figura.Instance().vrstaZaFiguru("pB7"));
            pB8.Location         = new Point(Figura.Instance().kolonaZaFiguru("pB8"), Figura.Instance().vrstaZaFiguru("pB8"));
            tB1.Location         = new Point(Figura.Instance().kolonaZaFiguru("tB1"), Figura.Instance().vrstaZaFiguru("tB1"));
            tB2.Location         = new Point(Figura.Instance().kolonaZaFiguru("tB2"), Figura.Instance().vrstaZaFiguru("tB2"));
            koB1.Location        = new Point(Figura.Instance().kolonaZaFiguru("koB1"), Figura.Instance().vrstaZaFiguru("koB1"));
            koB2.Location        = new Point(Figura.Instance().kolonaZaFiguru("koB2"), Figura.Instance().vrstaZaFiguru("koB2"));
            lB1.Location         = new Point(Figura.Instance().kolonaZaFiguru("lB1"), Figura.Instance().vrstaZaFiguru("lB1"));
            lB2.Location         = new Point(Figura.Instance().kolonaZaFiguru("lB2"), Figura.Instance().vrstaZaFiguru("lB2"));
            krB1.Location        = new Point(Figura.Instance().kolonaZaFiguru("krB1"), Figura.Instance().vrstaZaFiguru("krB1"));
            kB1.Location         = new Point(Figura.Instance().kolonaZaFiguru("kB1"), Figura.Instance().vrstaZaFiguru("kB1"));
            pictureBox1.Location = new Point(0, 0);
            //zKrB.Location = new Point(Figura.Instance().kolonaZaFiguru("kB1"), Figura.Instance().vrstaZaFiguru("kB1"));
            //new Point(Figura.Instance().kolonaZaFiguru("zKrB"), Figura.Instance().vrstaZaFiguru("zKrB"));
            pC1.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC1"), Figura.Instance().vrstaZaFiguru("pC1"));
            pC2.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC2"), Figura.Instance().vrstaZaFiguru("pC2"));
            pC3.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC3"), Figura.Instance().vrstaZaFiguru("pC3"));
            pC4.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC4"), Figura.Instance().vrstaZaFiguru("pC4"));
            pC5.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC5"), Figura.Instance().vrstaZaFiguru("pC5"));
            pC6.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC6"), Figura.Instance().vrstaZaFiguru("pC6"));
            pC7.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC7"), Figura.Instance().vrstaZaFiguru("pC7"));
            pC8.Location  = new Point(Figura.Instance().kolonaZaFiguru("pC8"), Figura.Instance().vrstaZaFiguru("pC8"));
            tC1.Location  = new Point(Figura.Instance().kolonaZaFiguru("tC1"), Figura.Instance().vrstaZaFiguru("tC1"));
            tC2.Location  = new Point(Figura.Instance().kolonaZaFiguru("tC2"), Figura.Instance().vrstaZaFiguru("tC2"));
            koC1.Location = new Point(Figura.Instance().kolonaZaFiguru("koC1"), Figura.Instance().vrstaZaFiguru("koC1"));
            koC2.Location = new Point(Figura.Instance().kolonaZaFiguru("koC2"), Figura.Instance().vrstaZaFiguru("koC2"));
            lC1.Location  = new Point(Figura.Instance().kolonaZaFiguru("lC1"), Figura.Instance().vrstaZaFiguru("lC1"));
            lC2.Location  = new Point(Figura.Instance().kolonaZaFiguru("lC2"), Figura.Instance().vrstaZaFiguru("lC2"));
            krC1.Location = new Point(Figura.Instance().kolonaZaFiguru("krC1"), Figura.Instance().vrstaZaFiguru("krC1"));
            kC1.Location  = new Point(Figura.Instance().kolonaZaFiguru("kC1"), Figura.Instance().vrstaZaFiguru("kC1"));
        }
示例#12
0
        /// <summary>
        /// metoda,ki za trdnjavo izračuna vsa njena delovanja
        /// </summary>
        /// <param name="fig">Object: objekt Figura,ki predstavlja trdnjavo</param>
        /// <returns>list: seznam vseh potez trdnjave</returns>
        public List<int[]> Trdnjava(Figura fig)
        {
            List<int[]> vsePot = new List<int[]>();

            //4 smeri premikov
            string[] vseSmeri = new string[4];
            vseSmeri[0] = "+0";
            vseSmeri[1] = "-0";
            vseSmeri[2] = "0+";
            vseSmeri[3] = "0-";

            //gremo v vsako smer
            foreach (string smer in vseSmeri)
            {
                //se premikamo po 1
                for (int i = 1; i < 8; i++)
                {
                    //tu shranjujemo koordinate novih polj
                    int novX = 42; int novY = 42;

                    //koordinate so odvisne od smeri in pa števila korakov
                    if (smer == "+0")
                    {
                        novX = fig.x + i;
                        novY = fig.y;
                    }
                    if (smer == "-0")
                    {
                        novX = fig.x - i;
                        novY = fig.y;
                    }
                    if (smer == "0+")
                    {
                        novX = fig.x;
                        novY = fig.y + i;
                    }
                    if (smer == "0-")
                    {
                        novX = fig.x;
                        novY = fig.y - i;
                    }

                    //preverimo nove koordinate,če so na šahovnici
                    if (novX >= 0 && novX < 8 && novY >= 0 && novY < 8)
                    {
                        //tvorimo tabelo iz novih koordinat
                        int[] potLov = new int[2];
                        potLov[0] = novX; potLov[1] = novY;

                        //če je novo polje prazno,je premik možen in nadaljujemo v tej smeri
                        if (this.sahovnica[novX, novY] == ".")
                        {
                            vsePot.Add(potLov);
                        }

                        //če je na polju nasprotnikova figura je premik možen,nadaljne poteze v tej smeri niso možne
                        if ((this.sahovnica[novX, novY] != ".") && ("" + sahovnica[novX, novY][0] != fig.barvaFigure()))
                        {
                            vsePot.Add(potLov);
                            break;
                        }

                        //če je na polju lastna figura,premik ni možen in prenehamo s premikanjem v tej smeri
                        if ("" + this.sahovnica[novX, novY][0] == fig.barvaFigure())
                        {
                            break;
                        }
                    }
                }
            }
            return vsePot;
        }
示例#13
0
        public int pomeri(int kolona, int vrsta, int novaKolona, int novaVrsta, string napadnutaFigura)
        {
            int j = 0;

            if (novaKolona > kolona && novaVrsta > vrsta && napadnutaFigura != null)
            {
                for (int i = 1; i < novaKolona - kolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona + i, vrsta + i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                j++;
                if (novaKolona == kolona + j && novaVrsta == vrsta + j)
                {
                    return(2);
                }
                else
                {
                    return(0);
                }
            }
            else if (novaKolona > kolona && novaVrsta < vrsta && napadnutaFigura != null)
            {
                for (int i = 1; i < novaKolona - kolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona + i, vrsta - i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                j++;
                if (novaKolona == kolona + j && novaVrsta == vrsta - j)
                {
                    return(2);
                }
                else
                {
                    return(0);
                }
            }
            else if (novaKolona < kolona && novaVrsta > vrsta && napadnutaFigura != null)
            {
                for (int i = 1; i < kolona - novaKolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona - i, vrsta + i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                j++;
                if (novaKolona == kolona - j && novaVrsta == vrsta + j)
                {
                    return(2);
                }
                else
                {
                    return(0);
                }
            }
            else if (novaKolona < kolona && novaVrsta < vrsta && napadnutaFigura != null)
            {
                for (int i = 1; i < kolona - novaKolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona - i, vrsta - i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                j++;
                if (novaKolona == kolona - j && novaVrsta == vrsta - j)
                {
                    return(2);
                }
                else
                {
                    return(0);
                }
            }
            //kretanje

            else if (novaKolona > kolona && novaVrsta > vrsta && napadnutaFigura == null)
            {
                for (int i = 1; i <= novaKolona - kolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona + i, vrsta + i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                if (novaKolona == kolona + j && novaVrsta == vrsta + j)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            else if (novaKolona > kolona && novaVrsta < vrsta && napadnutaFigura == null)
            {
                for (int i = 1; i <= novaKolona - kolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona + i, vrsta - i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                if (novaKolona == kolona + j && novaVrsta == vrsta - j)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            else if (novaKolona < kolona && novaVrsta > vrsta && napadnutaFigura == null)
            {
                for (int i = 1; i <= kolona - novaKolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona - i, vrsta + i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                if (novaKolona == kolona - j && novaVrsta == vrsta + j)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            else if (novaKolona < kolona && novaVrsta < vrsta && napadnutaFigura == null)
            {
                for (int i = 1; i <= kolona - novaKolona; i++)
                {
                    if (Figura.Instance().vratiFiguru(kolona - i, vrsta - i) != null)
                    {
                        return(0);
                    }
                    j = i;
                }
                if (novaKolona == kolona - j && novaVrsta == vrsta - j)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            else
            {
                return(0);
            }
        }
示例#14
0
        /// <summary>
        /// metoda,ki za skakača izračuna vsa njegova delovanja
        /// </summary>
        /// <param name="fig">Object: objekt Figura,ki predstavlja skakača</param>
        /// <returns>list: seznam vseh potez skakača</returns>
        public List<int[]> Skakac(Figura fig)
        {
            List<int[]> vsePot = new List<int[]>();

            //generiramo tabelo tabel,vseh novih koordinat skakača
            int[][] tockaSkak = new int[8][];

            int[] T1 = new int[2]; T1[0] = fig.x + 2; T1[1] = fig.y + 1; tockaSkak[0] = T1;
            int[] T2 = new int[2]; T2[0] = fig.x + 2; T2[1] = fig.y - 1; tockaSkak[1] = T2;
            int[] T3 = new int[2]; T3[0] = fig.x + 1; T3[1] = fig.y + 2; tockaSkak[2] = T3;
            int[] T4 = new int[2]; T4[0] = fig.x + 1; T4[1] = fig.y - 2; tockaSkak[3] = T4;
            int[] T5 = new int[2]; T5[0] = fig.x - 2; T5[1] = fig.y + 1; tockaSkak[4] = T5;
            int[] T6 = new int[2]; T6[0] = fig.x - 2; T6[1] = fig.y - 1; tockaSkak[5] = T6;
            int[] T7 = new int[2]; T7[0] = fig.x - 1; T7[1] = fig.y + 2; tockaSkak[6] = T7;
            int[] T8 = new int[2]; T8[0] = fig.x - 1; T8[1] = fig.y - 2; tockaSkak[7] = T8;

            //pregledamo vsa nova polja
            for (int i = 0; i < 8; i++)
            {
                //če so na šahovnici...
                if ((tockaSkak[i][0] < 8) && (tockaSkak[i][0] >= 0) && (tockaSkak[i][1] < 8) && (tockaSkak[i][1] >= 0))
                {
                    //če na njih ni lastne figure...jih dodamo
                    if ("" + this.sahovnica[tockaSkak[i][0], tockaSkak[i][1]][0] != fig.barvaFigure())
                    {
                        vsePot.Add(tockaSkak[i]);
                    }
                }
            }
            return vsePot;
        }
示例#15
0
        /// <summary>
        /// metoda,ki naredi premik ene figure na šahovnici s tem da ustvari nov objekt Sahovnica
        /// </summary>
        /// <param name="x">int: vrsta novega polja figure</param>
        /// <param name="y">int: stolpec novega polja figure</param>
        /// <param name="f">Object: objekt Figura,katero želimo premakniti</param>
        /// <returns>Object: objekt Sahovnica,ki predstavlja novo sahovnico</returns>
        public Sahovnica Premik(int novX, int novY, Figura f)
        {
            //novi sahovnici najprej naredimo ustrezno pozicijo
            string[,] novaSahovnica = (string[,])this.sahovnica.Clone();
            novaSahovnica[f.x, f.y] = ".";
            novaSahovnica[novX, novY] = f.IzpisFigure();

            //preverimo ali bo še možno narediti rokade
            bool novaMozMalRokBeli = this.moznaMalaRokadaBeli;
            bool novaMozMalRokCrni = this.moznaMalaRokadaCrni;
            bool novaMozVelRokBeli = this.moznaVelikaRokadaBeli;
            bool novaMozVelRokCrni = this.moznaVelikaRokadaCrni;
            int novPravilo50 = this.pravilo50+1;
            List<int[]> noviMozniEP = new List<int[]>();

            //če je prislo do jemanja ali se premakne kmet...zacnemo pravilo50 steti od zacetka
            if (f.ImeFigure() == "P" || this.sahovnica[novX, novY] != ".")
                novPravilo50 = 0;

            //pogledamo če bodo v naslednji potezi mozni EP
            if (f.ImeFigure() == "P")
            {
                if (this.kdo == "b")
                {
                    if (f.x == 1 && novX == 3)
                    {
                        if (f.y < 7 && f.y > 0)
                        {
                            if (this.sahovnica[3, f.y - 1] == "cP")
                            {
                                noviMozniEP.Add(new int[2] { f.y - 1, f.y });
                            }
                            if (this.sahovnica[3, f.y + 1] == "cP")
                                noviMozniEP.Add(new int[2] { f.y + 1, f.y });
                        }
                        else if (f.y == 7 && this.sahovnica[3, f.y - 1] == "cP")
                            noviMozniEP.Add(new int[2] { f.y - 1, f.y });
                        else if (f.y == 0 && this.sahovnica[3, f.y + 1] == "cP")
                            noviMozniEP.Add(new int[2] { f.y + 1, f.y });
                    }
                }
                if (this.kdo == "c")
                {
                    if (f.x == 6 && novX == 4)
                    {
                        if (f.y < 7 && f.y > 0)
                        {
                            if (this.sahovnica[4, f.y - 1] == "bP")
                                noviMozniEP.Add(new int[2] { f.y - 1, f.y });
                            if (this.sahovnica[4, f.y + 1] == "bP")
                                noviMozniEP.Add(new int[2] { f.y + 1, f.y });
                        }
                        else if (f.y == 7 && this.sahovnica[4, f.y - 1] == "bP")
                            noviMozniEP.Add(new int[2] { f.y - 1, f.y });
                        else if (f.y == 0 && this.sahovnica[4, f.y + 1] == "bP")
                            noviMozniEP.Add(new int[2] { f.y + 1, f.y });
                    }
                }
            }
            if (noviMozniEP.Count() == 0)
                noviMozniEP = null;

            //če beli premakne katero od trdnjav ali kralja
            if (f.x == 0)
            {
                if (f.y == 0)
                    novaMozVelRokBeli = false;

                else if (f.y == 7)
                    novaMozMalRokBeli = false;

                else if (f.y == 4)
                {
                    novaMozMalRokBeli = false;
                    novaMozVelRokBeli = false;
                }
            }

            //če črni premakne katero od trdnjav ali kralja
            else if (f.x == 7)
            {
                if (f.y == 0)
                    novaMozVelRokCrni = false;

                else if (f.y == 7)
                    novaMozMalRokCrni = false;

                else if (f.y == 4)
                {
                    novaMozMalRokCrni = false;
                    novaMozVelRokCrni = false;
                }
            }
            //če je bil izveden premik na katero od mest trdnjav ali kralja
            if (novX == 0)
            {
                if (novY == 0)
                    novaMozVelRokBeli = false;
                else if (novY == 7)
                    novaMozMalRokBeli = false;
                else if (novY == 4)
                {
                    novaMozMalRokBeli = false;
                    novaMozVelRokBeli = false;
                }
            }
            else if (novX == 7)
            {
                if (novY == 0)
                    novaMozVelRokCrni = false;
                else if (novY == 7)
                    novaMozMalRokCrni = false;
                else if (novY == 4)
                {
                    novaMozMalRokCrni = false;
                    novaMozVelRokCrni = false;
                }

            }

            //nato ustvarimo nov objekt Sahovnica z novimi parametri
            Sahovnica sah = new Sahovnica(novaSahovnica, this.kdo, novaMozMalRokBeli, novaMozMalRokCrni, novaMozVelRokBeli, novaMozVelRokCrni, noviMozniEP, novPravilo50,this.kateraPoteza+1);

            return sah;
        }
示例#16
0
        /// <summary>
        /// metoda,ki za kmeta izračuna vsa njegova delovanja(brez EP)
        /// </summary>
        /// <param name="fig">Object: objekt Figura,ki predstavlja kmeta</param>
        /// <returns>list: seznam vseh potez kmeta</returns>
        public List<int[]> Kmet(Figura fig)
        {
            List<int[]> vsePot = new List<int[]>();

            //definiramo jemanja
            int[] J1 = new int[2];
            int[] J2 = new int[2];

            //...beli
            if (fig.barvaFigure() == "b")
            {
                //dva mozna premika
                int[] T1 = new int[2]; T1[0] = fig.x + 1; T1[1] = fig.y;
                int[] T2 = new int[2]; T2[0] = fig.x + 2; T2[1] = fig.y;

                //dve jemanji
                J1[0] = fig.x + 1; J1[1] = fig.y + 1;
                J2[0] = fig.x + 1; J2[1] = fig.y - 1;

                //ce je pred njim prazno polje ga dodamo...
                if (this.sahovnica[T1[0], T1[1]][0] == '.')
                {
                    vsePot.Add(T1);

                    //...ce obe polji pred njim prazni in je na zacetku dodamo se drug premik
                    if (fig.x < 6 && this.sahovnica[T2[0], T2[1]][0] == '.' && fig.x == 1)
                    {
                        vsePot.Add(T2);
                    }
                }
            }

            //...crni
            if (fig.barvaFigure() == "c")
            {
                //dva mozna premika
                int[] T1 = new int[2]; T1[0] = fig.x - 1; T1[1] = fig.y;
                int[] T2 = new int[2]; T2[0] = fig.x - 2; T2[1] = fig.y;

                //dve jemanji
                J1[0] = fig.x - 1; J1[1] = fig.y + 1;
                J2[0] = fig.x - 1; J2[1] = fig.y - 1;

                //ce je pred njim prazno polje ga dodamo...
                if (this.sahovnica[T1[0], T1[1]][0] == '.')
                {
                    vsePot.Add(T1);

                    //...ce obe polji pred njim prazni in je na zacetku dodamo se drug premik
                    if ((fig.x > 1 && this.sahovnica[T2[0], T2[1]][0] == '.') && (fig.x == 6))
                    {
                        vsePot.Add(T2);
                    }
                }
            }

            //preverimo še jemanja...
            int[][] vsaJem = new int[2][]; vsaJem[0] = J1; vsaJem[1] = J2;

            foreach (int[] jem in vsaJem)
            {
                //...ce so znotraj sahovnice
                if ((jem[1] < 8) && (jem[1] >= 0))
                {
                    //...in polje ni prazno ali zasedeno z lastno figuro...dodamo
                    if ((this.sahovnica[jem[0], jem[1]][0] != '.') && ("" + this.sahovnica[jem[0], jem[1]][0] != fig.barvaFigure()))
                    {
                        vsePot.Add(jem);
                    }
                }
            }
            return vsePot;
        }
示例#17
0
        /// <summary>
        /// metoda,ki za vsako figuro pokliče ustrezno metodo glede na to kakšne vrste figura je
        /// </summary>
        /// <param name="fig">Object: objekt figura</param>
        /// <returns>List: seznam vseh potez te figure</returns>
        public List<int[]> VsePotezeFigura(Figura fig)
        {
            //seznam kjer bomo shranili mozne premike
            List<int[]> vsePot = new List<int[]>();

            //kmet...
            if (fig.ImeFigure() == "P")
            {
                vsePot = Kmet(fig);
            }

            //skakač
            else if (fig.ImeFigure() == "S")
            {
                vsePot = Skakac(fig);
            }

            //lovec
            else if (fig.ImeFigure() == "L")
            {
                vsePot = Lovec(fig);
            }

            //trdnjava
            else if (fig.ImeFigure() == "T")
            {
                vsePot = Trdnjava(fig);
            }

            //dama
            else if (fig.ImeFigure() == "D")
            {
                vsePot = Dama(fig);
            }

            //kralj
            else if (fig.ImeFigure() == "K")
            {
                vsePot = Kralj(fig);
            }

            return vsePot;
        }
示例#18
0
        /// <summary>
        /// metoda,ki za damo izračuna vsa njena delovanja(unija lovca in topa)
        /// </summary>
        /// <param name="fig">Object: Figura,ki predstavlja damo</param>
        /// <returns>list: seznam vseh potez dame</returns>
        public List<int[]> Dama(Figura fig)
        {
            List<int[]> vsePot = new List<int[]>();

            //spremenimo damo v trdnjavo in izračunamo delovanja
            this.sahovnica[fig.x, fig.y] = this.kdo + "T";
            fig.ime = "T";

            vsePot = Trdnjava(fig);

            //nato spremenimo še v lovca,izračunamo delovanja in dodamo
            this.sahovnica[fig.x, fig.y] = this.kdo + "L";
            fig.ime = "L";

            vsePot.AddRange(Lovec(fig));

            //na koncu še pozicijo vrnemo nazaj
            this.sahovnica[fig.x, fig.y] = this.kdo + "D";
            fig.ime = "D";

            return vsePot;
        }