示例#1
0
        public JuegoControlador()
        {
            pause            = false;
            puntuacion       = 0;
            tetrominoCurrent = new Tetromino();
            tetrominoNext    = new Tetromino();
            inicio           = false;
            board            = new int[8, 8, 15];
            tetrominoCurrent = nextTetromino();
            tetrominoNext    = nextTetromino();

            //cantLineasEliminadas = 0;
        }
示例#2
0
        //escoge una ficha
        public Tetromino nextTetromino()
        {
            Tetromino tetrominoCurrent = new Tetromino();
            // generar figura randomica
            //Tipo_Tetromino tipoTetro = nextTetro();
            Tipo_Tetromino tipoTetro = Tipo_Tetromino.CUBO;

            //tetrominoCurrent.tipo = tipoTetro;
            tetrominoCurrent.setEstructuraPieza(tipoTetro);
            //Tipo_Tetromino tipoTetro = (Tipo_Tetromino)r.Next(0, 6);

            //Tipo_Tetromino tipoTetro = Tipo_Tetromino.CUBO;
            //int nroTetro = r.Next(0, 6);
            //tetrominoCurrent.setTipoPieza(tipoTetro);
            return(tetrominoCurrent);
        }
 public void clonar(Tetromino aux)
 {
     for (int i = 0; i < 3; i++)
     {
         for (int j = 0; j < 3; j++)
         {
             for (int k = 0; k < 3; k++)
             {
                 if (aux.figura[i, j, k] != 0)
                 {
                     figura[i, j, k] = 1;
                 }
             }
         }
     }
     color = aux.color;
     pos   = aux.pos;
 }
示例#4
0
        public bool verifRotacion(Tetromino aux)
        {
            bool  b = false;
            float z1;
            float z0 = aux.getPos().getz();
            float x0;
            float y0;

            if (z0 < 0)
            {
                z0 = 0;
            }

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        if (aux.figura[i, j, k] != 0)
                        {
                            x0 = j - 1;
                            y0 = i;
                            z1 = k - 1;
                            if (x0 == 1)
                            {
                                x0 = -1;
                            }
                            else
                            {
                                if (x0 < 0)
                                {
                                    x0 = 1;
                                }
                            }
                            if (z1 < 0)
                            {
                                z1 = -1;
                            }

                            x0 = x0 + aux.getPos().getx();
                            y0 = y0 + aux.getPos().gety();
                            z1 = z1 + z0;
                            if (x0 < 0 || y0 < 0 || z1 < 0 || z1 >= 15 || x0 > 7 || y0 > 7)
                            {
                                return(false);
                            }
                            if (board[(int)x0, (int)y0, (int)z1] == 0)
                            {
                                b = true;
                            }
                            else
                            {
                                return(false);
                            }
                        }
                    }
                }
            }

            return(b);
        }
示例#5
0
        public void rotaciones(int n)
        {
            if (pause)
            {
                return;
            }
            Tetromino aux = new Tetromino();

            aux.clonar(tetrominoCurrent);
            switch (n)
            {
            case 1:

                aux.rotarX();
                if (verifRotacion(aux))
                {
                    tetrominoCurrent.rotarX();
                }
                break;

            case 2:
                aux.rotarXN();
                if (verifRotacion(aux))
                {
                    tetrominoCurrent.rotarXN();
                }
                break;

            case 3:
                aux.rotarY();
                if (verifRotacion(aux))
                {
                    tetrominoCurrent.rotarY();
                }
                break;

            case 4:
                aux.rotarYN();
                if (verifRotacion(aux))
                {
                    tetrominoCurrent.rotarYN();
                }
                break;

            case 5:
                aux.rotarZ();
                if (verifRotacion(aux))
                {
                    tetrominoCurrent.rotarZ();
                }
                break;

            case 6:
                aux.rotarZN();
                if (verifRotacion(aux))
                {
                    tetrominoCurrent.rotarZN();
                }
                break;
            }
        }