Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2014, 12:58
adri_360
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta ¿Como introducir piezas? Juego "básico" en Java

Buenas tardes a todos, este es mi primer mensaje en el foro
Y querría pedir un poco de ayuda u orientación porque llevo varios días bloqueado con un asunto.
Les cuento, tengo que hacer un tetris básico a base de carácteres.

El objetivo del trabajo es crear un programa que implemente el conocido
juego del Tetris. El juego está formado por un tablero de 8x8 casillas, en el cual
se van posicionando piezas. Todas las piezas caben dentro de un cuadrado
3x3. La representación de las diferentes piezas dependerá de si el símbolo a
dibujar es un espacio en blanco o un *. Son 6 piezas las tipicas del tetris excluyendo al cuadrado.
Si todas las casillas de alguna de las filas del tablero están ocupadas, ésta se
vaciaría y las casillas posicionadas por encima de esa fila, pasarán a ocupar la
fila inferior.
Una vez que no haya huecos libres en el tablero para posicionar una nueva
pieza, el juego se da por finalizado. Se considerará que no hay un hueco libre,
si la pieza no cabe en su totalidad dentro del tablero.

laa parte básica tendrá que simular una partida de Tetris en la cual se van a
posicionar x (el valor será introducido como argumento al lanzar la aplicación)
piezas. Las x piezas serán elegidas de manera aleatoria. Las piezas se
deberán ir posicionando de izquierda a derecha en la fila más baja del tablero
que contenga espacio suficiente para que esa pieza quepa. Por pantalla se irá
mostrando el estado del tablero de la siguiente manera:
1. Estado del tablero (al inicio estará vacío),
2. número de piezas que se han colocado,
3. el mensaje “Pulse Enter”, que permitirá dejar la ejecución de la
simulación en espera, hasta que el usuario pulse la tecla ‘Enter’.
4. Una vez pulsada una tecla, se mostrar á la nueva pieza seleccionada a
colocar en el tablero y se volverá a repetir todo el proceso.
El juego finalizará cuando no haya más piezas para posicionar o no quepan
en el tablero.

El problema es que no entiendo como meter la pieza en el tablero y no sé me ocurre absolutamente nada, mi conocimiento es bastante básico de java y el profesor que tengo no sabe explicar.

Esto es lo que de momento tengo hecho:
Clase Partida:
Código Java:
Ver original
  1. import java.util.Scanner;
  2.  
  3. public class Partida extends Tablero{
  4.  
  5. //Método para introducir "enter"
  6.    
  7. public String funcionEnter(){
  8.     String enter = "";
  9.     Scanner leeCadena = new Scanner (System.in);
  10.     String tecla = "";
  11.     System.out.println("<Pulse enter>");
  12.     enter = leeCadena.nextLine();
  13.     return enter;
  14. }
  15.    
  16. public static void main(String[] args) {
  17.         int c=0;
  18.         String tecla="";
  19.        
  20.         do{
  21.         //Pieza elegida
  22.         Piezas p_elegida = new Piezas();
  23.         p_elegida.asignarPiezas();
  24.        
  25.         //Tablero
  26.         Tablero obj_tablero = new Tablero();
  27.         obj_tablero.creacionTablero();
  28.        
  29.  
  30.        
  31.         //Contador de piezas
  32.         System.out.println("Piezas = " +c);
  33.         c++;
  34.        
  35.         //Tecla enter
  36.         Partida enter = new Partida();
  37.         tecla = enter.funcionEnter();
  38.        
  39.         }while(tecla != "\n");
  40.     }
  41.  
  42. }

Clase Tablero:
Código Java:
Ver original
  1. import java.util.Scanner;
  2.  
  3. public class Tablero extends Casillas{
  4.     Tablero() {}
  5.     private int i;
  6.     private char matrizTablero [];
  7.  
  8. //método que imprime el tablero vacío
  9. public void creacionTablero(){
  10.     this.matrizTablero= new char[8];
  11.     this.i=0;
  12.     int filas=0;
  13.     Casillas obj_casilla = new Casillas();
  14.     obj_casilla.setCasilla('-');
  15.    
  16.     for(filas=0;filas<8;filas++){
  17.         for(i=0;i<matrizTablero.length;i++){
  18.             matrizTablero[i]=obj_casilla.getCasilla();
  19.             System.out.print(matrizTablero[i]+" ");
  20.         }
  21.         System.out.println();
  22.     }
  23.        
  24.     }
  25. }

Clase Piezas:
Código Java:
Ver original
  1. public class Piezas {
  2.    
  3. public Piezas() {}
  4. //atributos
  5. private int i;
  6. private int j;
  7. private char m1[][];
  8. private char m2[][];
  9. private char m3[][];
  10. private char m4[][];
  11. private char m5[][];
  12. private char m6[][];
  13.  
  14. //métodos
  15. public void pieza1(){
  16.     this.i=0;
  17.     this.j=0;
  18.     this.m1 = new char [3][3];
  19.    
  20.     for(i=0;i<m1.length;i++){
  21.         for(j=0;j<m1.length;j++){
  22.             if(i<3 && j==0){
  23.                 m1[i][j]='*';
  24.             }
  25.             else{
  26.                 m1[i][j]=' ';
  27.             }
  28.             System.out.print(m1[i][j]+" ");
  29.         }
  30.         System.out.println();
  31.     }
  32. }
  33.  
  34. public void pieza2(){
  35.     this.i=0;
  36.     this.j=0;
  37.     this.m2 = new char [3][3];
  38.    
  39.     for(i=0;i<m2.length;i++){
  40.         for(j=0;j<m2.length;j++){
  41.             if((i==1 && j==0)||(i==2 && j<3)){
  42.                 m2[i][j]='*';
  43.             }
  44.             else{
  45.                 m2[i][j]=' ';
  46.             }
  47.             System.out.print(m2[i][j]+" ");
  48.         }
  49.         System.out.println();
  50.     }
  51. }
  52.  
  53. public void pieza3(){
  54.     this.i=0;
  55.     this.j=0;
  56.     this.m3 = new char [3][3];
  57.    
  58.     for(i=0;i<m3.length;i++){
  59.         for(j=0;j<m3.length;j++){
  60.                     if((i==1 && j==2)||(i==2 && j<3)){
  61.                         m3[i][j]='*';
  62.                     }
  63.                     else{
  64.                         m3[i][j]=' ';
  65.                     }
  66.                     System.out.print(m3[i][j]+" ");
  67.                 }
  68.                 System.out.println();
  69.     }
  70. }
  71.  
  72. public void pieza4(){
  73.     this.i=0;
  74.     this.j=0;
  75.     this.m4 = new char [3][3];
  76.    
  77.     for(i=0;i<m4.length;i++){
  78.         for(j=0;j<m4.length;j++){
  79.             if((i==1 && j==1)||(i==2 && j<3)){
  80.                 m4[i][j]='*';
  81.             }
  82.             else{
  83.                 m4[i][j]=' ';
  84.             }
  85.             System.out.print(m4[i][j]+" ");
  86.         }
  87.         System.out.println();
  88.     }
  89. }
  90.  
  91. public void pieza5(){
  92.     this.i=0;
  93.     this.j=0;
  94.     this.m5 = new char [3][3];
  95.    
  96.     for(i=0;i<m5.length;i++){
  97.         for(j=0;j<m5.length;j++){
  98.             if((i==1 && j>0)||(i==2 && j<2)){
  99.                 m5[i][j]='*';
  100.             }
  101.             else{
  102.                 m5[i][j]=' ';
  103.             }
  104.             System.out.print(m5[i][j]+" ");
  105.         }
  106.         System.out.println();
  107.     }
  108. }
  109.  
  110. public void pieza6(){
  111.     this.i=0;
  112.     this.j=0;
  113.     this.m6 = new char [3][3];
  114.    
  115.     for(i=0;i<m6.length;i++){
  116.         for(j=0;j<m6.length;j++){
  117.             if((i==1 && j<2)||(i==2 && j>0)){
  118.                 m6[i][j]='*';
  119.             }
  120.             else{
  121.                 m6[i][j]=' ';
  122.             }
  123.             System.out.print(m6[i][j]+" ");
  124.         }
  125.         System.out.println();
  126.     }
  127.  
  128. }
  129.  
  130. public void asignarPiezas() {
  131.     int n = 0;
  132.     n = (int) Math.floor(Math.random()*6+1);
  133.    
  134.     //System.out.println(n);
  135.    
  136.     switch(n){
  137.     case 1:
  138.         Piezas p1 = new Piezas();
  139.         p1.pieza1();
  140.         break;
  141.     case 2:
  142.         Piezas p2 = new Piezas();
  143.         p2.pieza2();
  144.         break;
  145.     case 3:
  146.         Piezas p3 = new Piezas();
  147.         p3.pieza3();
  148.         break;
  149.     case 4:
  150.         Piezas p4 = new Piezas();
  151.         p4.pieza4();
  152.         break;
  153.     case 5:
  154.         Piezas p5 = new Piezas();
  155.         p5.pieza5();
  156.         break;
  157.     case 6:
  158.         Piezas p6 = new Piezas();
  159.         p6.pieza6();
  160.         break;
  161.     }
  162.    
  163. }
  164. }
  165.  
  166. /*
  167. public static void main(String[] args) {
  168.     Piezas p_elegida = new Piezas();
  169.     p_elegida.asignarPiezas();
  170. }
  171. }
  172. */
Clase Casillas:
Código Java:
Ver original
  1. public class Casillas {
  2.  
  3. private char casilla;
  4.  
  5. Casillas(){
  6. }
  7.  
  8. public char getCasilla() {
  9.     return casilla;
  10. }
  11.  
  12. public void setCasilla(char casilla){
  13.     this.casilla=casilla;
  14. }
  15.  
  16.  
  17.  
  18. }

¿Me podrían echar una mano?

Un saludo