Example #1
0
        static public void roszada(Bierka wieza, Bierka krol, Enums.Roszada typRoszady)
        {
            int    pozycjaXKrola = 0;     // docelowa pozycja krola
            int    pozycjaXWiezy = 0;     // docelowa pozycja wieży
            string PGN           = "0-0"; // dla krotkiej roszady

            if (typRoszady == Enums.Roszada.Dluga)
            {
                pozycjaXKrola = 2;
                pozycjaXWiezy = 3;
                PGN          += "-0";
            }
            else
            {
                pozycjaXKrola = 6;
                pozycjaXWiezy = 5;
            }

            // pozycje Y się nie zmieniają.
            wieza.pozycjaX = pozycjaXWiezy;
            krol.pozycjaX  = pozycjaXKrola;

            // wygenerowanie możliwych ruchów dla biurerk, które biorą udział w roszadzie
            wieza.generujMozliweRuchy(Gra.bierkiBiale, Gra.bierkiCzarne);
            wieza.wyczyscMozliweRuchyZeSmieci();
            wieza.bylRuch = true;
            krol.generujMozliweRuchy(Gra.bierkiBiale, Gra.bierkiCzarne);
            krol.wyczyscMozliweRuchyZeSmieci();
            krol.bylRuch = true;

            string numer = string.Empty;

            Gra.ileRuchow++;
            int ktoryNumer = Gra.ileRuchow / 2;

            ktoryNumer++;
            if (Gra.ileRuchow % 2 == 1)
            {
                numer = " " + ktoryNumer + ". ";
            }
            else
            {
                numer = " ";
            }
            Gra.pgnString += numer + PGN;


            Gra.ustawSzach(Gra.bierkiBiale, Gra.bierkiCzarne);
            if (Gracz_Czlowiek.szach)
            {
                MessageBox.Show("Zaszachowano gracza");
                Bierka.wygenerujMozliweRuchyKrola();
            }
            if (Gracz_Komputer.szach)
            {
                MessageBox.Show("Zaszachowano komputer");
                Bierka.wygenerujMozliweRuchyKrola();
            }
        }
Example #2
0
        public static void roszada(Bierka wieza, Bierka krol, Enums.Roszada typRoszady)
        {
            int pozycjaXKrola = 0;  // docelowa pozycja krola
            int pozycjaXWiezy = 0;   // docelowa pozycja wieży
            string PGN = "0-0";   // dla krotkiej roszady

            if (typRoszady == Enums.Roszada.Dluga)
            {
                pozycjaXKrola = 2;
                pozycjaXWiezy = 3;
                PGN += "-0";
            }
            else
            {
                pozycjaXKrola = 6;
                pozycjaXWiezy = 5;
            }

            // pozycje Y się nie zmieniają.
            wieza.pozycjaX = pozycjaXWiezy;
            krol.pozycjaX = pozycjaXKrola;

            // wygenerowanie możliwych ruchów dla biurerk, które biorą udział w roszadzie
            wieza.generujMozliweRuchy(Gra.bierkiBiale, Gra.bierkiCzarne);
            wieza.wyczyscMozliweRuchyZeSmieci();
            wieza.bylRuch = true;
            krol.generujMozliweRuchy(Gra.bierkiBiale, Gra.bierkiCzarne);
            krol.wyczyscMozliweRuchyZeSmieci();
            krol.bylRuch = true;

            string numer = string.Empty;
            Gra.ileRuchow++;
            int ktoryNumer = Gra.ileRuchow / 2;
            ktoryNumer++;
            if (Gra.ileRuchow % 2 == 1) numer = " " + ktoryNumer + ". ";
            else numer = " ";
            Gra.pgnString += numer + PGN;

            Gra.ustawSzach(Gra.bierkiBiale, Gra.bierkiCzarne);
            if (Gracz_Czlowiek.szach)
            {
                MessageBox.Show("Zaszachowano gracza");
                Bierka.wygenerujMozliweRuchyKrola();
            }
            if (Gracz_Komputer.szach)
            {
                MessageBox.Show("Zaszachowano komputer");
                Bierka.wygenerujMozliweRuchyKrola();
            }
        }