예제 #1
0
        public bool avance(Figura figura, int xx, int yy, int zz)
        {
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        try
                        {
                            if (figura.get(i, j, k) == 1 &&
                                matrizEspacios[i + xx, j + yy, k + zz] == 1)
                            {
                                return(false);
                            }
                        }
                        catch (Exception)
                        {
                            return(false);

                            throw;
                        }
                    }
                }
            }
            return(true);
        }
예제 #2
0
파일: Plansza.cs 프로젝트: Jacwing/Klocki
 public void CzyśćFigurę(Figura figura)
 {
     foreach (Klocek klocek in figura.ListaKlocków)
     {
         Klocki[klocek.Y][klocek.X].Kolor = Brushes.Transparent;
     }
 }
예제 #3
0
        public CANTMOVE Collision()
        {
            CANTMOVE CanYouMove = CANTMOVE.GITGUT;

            for (int y = 0; y < figura.Size; y++)
            {
                for (int x = 0; x < figura.Size; x++)
                {
                    if (figura.CurrentPiece[y, x] != 0)
                    {
                        if (landed[(int)figura.position.Y + y, (int)figura.position.X + x] != 0)
                        {
                            return(CANTMOVE.AtAll);
                        }
                        if ((figura.position.Y + y + 1 >= height) || (landed[(int)figura.position.Y + y + 1, (int)figura.position.X + x] != 0))
                        {
                            Place();
                            figura = new Figura();
                            return(CANTMOVE.DOWN);
                        }
                        if (figura.position.X + x - 1 < 0)
                        {
                            CanYouMove = CANTMOVE.LEFT;
                        }
                        if (figura.position.X + x + 1 >= width)
                        {
                            CanYouMove = CANTMOVE.RIGHT;
                        }
                    }
                }
            }

            return(CanYouMove);
        }
예제 #4
0
파일: Plansza.cs 프로젝트: Jacwing/Klocki
 public void RysujFigurę(Figura figura)
 {
     foreach (Klocek klocek in figura.ListaKlocków)
     {
         Klocki[klocek.Y][klocek.X].Kolor = klocek.Kolor;
     }
 }
예제 #5
0
 public GameManager(ContentManager Content)
 {
     image             = Content.Load <Texture2D>("klocek");
     font              = Content.Load <SpriteFont>("MenuFont");
     landed            = new int[height, width];
     figura            = new Figura();
     backgroundPicture = Content.Load <Texture2D>("BackgroundMenu1");
 }
예제 #6
0
파일: Figura.cs 프로젝트: Jacwing/Klocki
        public object Clone()
        {
            Figura figura = new Figura();

            foreach (Klocek klocek in this.ListaKlocków)
            {
                figura.ListaKlocków.Add((Klocek)klocek.Clone());
            }
            return(figura);
        }
예제 #7
0
        public void nuevaFiguraCayendo(OpenGL open, int Width, int Height)
        {
            figuraCayendo = new Figura();
            figuraCayendo.crearCubo();
            Random r = new Random();

            figuraCayendo.elegirFigura(r.Next(0, 5));
            rotarCamaraHorizontal(open, Width, Height);
            tz = 0;
            tx = 0;
            ty = 0;
        }
예제 #8
0
파일: Figura.cs 프로젝트: Jacwing/Klocki
        public Figura RóżnicaPomiędzyFigurami(Figura porównywanaFigura)
        {
            Figura figura = new Figura();

            foreach (Klocek klocek in porównywanaFigura.ListaKlocków)
            {
                if (!this.ListaKlocków.Contains(klocek))
                {
                    figura.ListaKlocków.Add(klocek);
                }
            }
            return(figura);
        }
예제 #9
0
파일: Plansza.cs 프로젝트: Jacwing/Klocki
        public bool RysujFiguręZeSprawdzeniem(Figura figura)
        {
            bool wynik = true;

            foreach (Klocek klocek in figura.ListaKlocków)
            {
                if (Klocki[klocek.Y][klocek.X].Kolor != Brushes.Transparent)
                {
                    wynik = false;
                }
                Klocki[klocek.Y][klocek.X].Kolor = klocek.Kolor;
            }
            return(wynik);
        }
예제 #10
0
파일: Plansza.cs 프로젝트: Jacwing/Klocki
        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);
        }
예제 #11
0
 public void añadirFigura(Figura figura, int xx, int yy, int zz)
 {
     for (int i = 0; i < 3; i++)
     {
         for (int j = 0; j < 3; j++)
         {
             for (int k = 0; k < 3; k++)
             {
                 if (figura.get(i, j, k) == 1)
                 {
                     matrizEspacios[i + xx, j + yy, k + zz] = 1;
                 }
             }
         }
     }
     if (areaCompletada())
     {
         eliminarArea();
     }
 }
예제 #12
0
파일: Plansza.cs 프로젝트: Jacwing/Klocki
        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);
            }
        }