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; }
//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; }
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); }
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; } }