Example #1
0
        public bool PrzesuńlubObróć(Figura figura, TrybRuchu trybRuchu)
        {
            bool wynik = false;

            switch (trybRuchu)
            {
            case TrybRuchu.PrzesuńWDół:
                if (CzyMożnaObrócićLubPrzesunąć(figura, trybRuchu))
                {
                    CzyśćFigurę(figura);
                    RysujFigurę(figura.PrzesuńWDół());
                    wynik = true;
                }
                break;

            case TrybRuchu.PrzesuńWLewo:
                if (CzyMożnaObrócićLubPrzesunąć(figura, trybRuchu))
                {
                    CzyśćFigurę(figura);
                    RysujFigurę(figura.PrzesuńWLewo());
                    wynik = true;
                }
                break;

            case TrybRuchu.PrzesuńWPrawo:
                if (CzyMożnaObrócićLubPrzesunąć(figura, trybRuchu))
                {
                    CzyśćFigurę(figura);
                    RysujFigurę(figura.PrzesuńWPrawo());
                    wynik = true;
                }
                break;

            case TrybRuchu.Obróc:
                if (CzyMożnaObrócićLubPrzesunąć(figura, trybRuchu))
                {
                    CzyśćFigurę(figura);
                    RysujFigurę(figura.Obróc());
                    wynik = true;
                }
                break;
            }
            return(wynik);
        }
Example #2
0
        public bool CzyMożnaObrócićLubPrzesunąć(Figura figura, TrybRuchu trybRuchu)
        {
            Figura kopia = (Figura)figura.Clone();

            switch (trybRuchu)
            {
            case TrybRuchu.PrzesuńWDół:
                kopia.PrzesuńWDół();
                break;

            case TrybRuchu.PrzesuńWLewo:
                kopia.PrzesuńWLewo();
                break;

            case TrybRuchu.PrzesuńWPrawo:
                kopia.PrzesuńWPrawo();
                break;

            case TrybRuchu.Obróc:
                kopia.Obróc();
                break;
            }
            Figura różnicaPomiędzyOryginalnąAPrzesuniętą = figura.RóżnicaPomiędzyFigurami(kopia);

            if ((różnicaPomiędzyOryginalnąAPrzesuniętą.MaxX > 9) || (różnicaPomiędzyOryginalnąAPrzesuniętą.MinX < 0) || (różnicaPomiędzyOryginalnąAPrzesuniętą.MinY < 0) || (różnicaPomiędzyOryginalnąAPrzesuniętą.MaxY > 19))
            {
                return(false);
            }
            else
            {
                foreach (Klocek klocek in różnicaPomiędzyOryginalnąAPrzesuniętą.ListaKlocków)
                {
                    if (Klocki[klocek.Y][klocek.X].Kolor != Brushes.Transparent)
                    {
                        return(false);
                    }
                }
                return(true);
            }
        }