コード例 #1
0
 private void licznik_Tick(object sender, EventArgs e)
 {
     if (!Plansza_do_gry.wdol())
     {
         if (szybka)
         {
             szybka = false;
             if (level < 11)
             {
                 licznik.Interval = 1000 - 100 * (level - 1);
             }
             else if (level < 21)
             {
                 licznik.Interval = 100 - 10 * (level - 1);
             }
             else
             {
                 licznik.Interval = 10;
             }
         }
         int pkt = Plansza_do_gry.linie();
         punkty  += (pkt * pkt);
         Pkt.Text = punkty.ToString();
         if (punkty >= level * 10)
         {
             level++;
             Poziom.Text = level.ToString();
             if (level < 11)
             {
                 licznik.Interval -= 100;
             }
             else if (level < 21)
             {
                 licznik.Interval -= 10;
             }
             else
             {
                 licznik.Interval = 10;
             }
         }
         Figura f = nastepny.getfigura();
         if (!Plansza_do_gry.rysujfigure(5, 0, f))
         {
             licznik.Stop();
             licznik.Interval = 1000;
             MessageBox.Show("koniec");
             gra = false;
             f   = null;
             Plansza_do_gry.reset();
             nastepny.reset();
             level       = 1;
             punkty      = 0;
             Pkt.Text    = "0";
             Poziom.Text = "1";
             return;
         }
         nastepny.reset();
         nastepny.rysujfigure(0, 0, new Figura());
     }
 }
コード例 #2
0
ファイル: Plansza_Tetris.cs プロジェクト: TyRRRax/Tetris
        public bool rysujfigure(int x, int y, Figura f)
        {
            if (!sprawdzwymiary(x, y))
            {
                return(false);
            }
            int i, j;

            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 4; j++)
                {
                    if (f.siatka[i, j])
                    {
                        if (!sprawdzwymiary(x + i, y + j))
                        {
                            return(false);
                        }
                        if (siatka[x + i, y + j].czyzajeta())
                        {
                            return(false);
                        }
                    }
                }
            }
            x_figury = x;
            y_figury = y;
            if (klocek != f)
            {
                klocek = f;
            }
            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 4; j++)
                {
                    if (f.siatka[i, j])
                    {
                        siatka[x + i, y + j].ustawkolor(f.kolor);
                        rysujkratke(x + i, y + j);
                    }
                }
            }
            return(true);
        }
コード例 #3
0
ファイル: Plansza_Tetris.cs プロジェクト: TyRRRax/Tetris
        public void obroc_w_prawo()
        {
            if (klocek.kat == 270)
            {
                klocek.kat = 0;
            }
            else
            {
                klocek.kat += 90;
            }
            Figura nowa = klocek.odwroc(klocek.kat);
            int    i, j;

            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 4; j++)
                {
                    if (nowa.siatka[i, j] && !sprawdzwymiary(x_figury + i, y_figury + j))
                    {
                        return;
                    }
                    if (nowa.siatka[i, j] &&
                        !klocek.siatka[i, j] &&
                        siatka[x_figury + i, y_figury + j].czyzajeta())
                    {
                        return;
                    }
                }
            }

            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 4; j++)
                {
                    if (klocek.siatka[i, j])
                    {
                        siatka[x_figury + i, y_figury + j].kasuj(g, BackColor);
                    }
                }
            }

            rysujfigure(x_figury, y_figury, nowa);
        }
コード例 #4
0
        public Figura odwroc(int f)
        {
            if (f != 0 && f != 90 && f != 180 && f != 270)
            {
                return(this);
            }
            Figura nowa = new Figura();

            nowa.kat   = f;
            nowa.kolor = kolor;
            nowa.jaka  = jaka;
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    siatka[i, j] = false;
                }
            }

            switch (jaka)
            {
            case figury.L:
                switch (f)
                {
                case 0: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] = nowa.siatka[1, 2] = true; break;

                case 90: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] = nowa.siatka[0, 1] = true; break;

                case 180: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[1, 2] = true; break;

                case 270: nowa.siatka[2, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] = nowa.siatka[2, 1] = true; break;
                }
                break;

            case figury.odw_L:
                switch (f)
                {
                case 0: nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[1, 2] = nowa.siatka[0, 2] = true; break;

                case 90: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] = nowa.siatka[2, 1] = true; break;

                case 180: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] = nowa.siatka[1, 0] = true; break;

                case 270: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] = nowa.siatka[2, 1] = true; break;
                }
                break;

            case figury.palka:
                switch (f)
                {
                case 0:
                case 180:
                    nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] = nowa.siatka[0, 3] = true; break;

                case 90:
                case 270:
                    nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] = nowa.siatka[3, 0] = true; break;
                }
                break;

            case figury.piorun:
                switch (f)
                {
                case 0:
                case 180:
                    nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] = nowa.siatka[1, 2] = true; break;

                case 90:
                case 270:
                    nowa.siatka[1, 0] = nowa.siatka[2, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] = true; break;
                }
                break;

            case figury.kwadrat:
                nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] = true; break;

            case figury.trojkat:
                switch (f)
                {
                case 0: nowa.siatka[1, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] = nowa.siatka[2, 1] = true; break;

                case 90: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] = nowa.siatka[1, 1] = true; break;

                case 180: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] = nowa.siatka[1, 1] = true; break;

                case 270: nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[1, 2] = nowa.siatka[0, 1] = true; break;
                }
                break;

            case figury.odw_piorun:
                switch (f)
                {
                case 0:
                case 180:
                    nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[0, 1] = nowa.siatka[0, 2] = true; break;

                case 90:
                case 270:
                    nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[2, 1] = true; break;
                }
                break;
            }
            return(nowa);
        }