viernes, 9 de diciembre de 2011

proyecto de Orientado a objetos

bueno para mi proyecto elegui hacer un tetris por su facilidad en la programacion uso de arreglos y para la implementacion del proyecto elegi java 
este es su diagrama de clases

El codigo consta 4 clases y el programa principal tetris que es el que le da la secuencia al juego, veremos cual es la funcion de cada clase:
  • pieza: Esta clase es la que contiene la forma que tendra cada figura y sus rotaciones posibles, contiene los metodos para girar la pieza y moverla dentro del tablero.
  • tablero: Es una matriz que contiene los espacios utilizados por las piezas, sus metodos permiten saber cuando las lineas están completas y nos dice cuantas son, ademas de que nos da el valor de cada uno de los espacios si esta lleno o vacío, para determinar si una pieza puede ocupar esa posición.
  • marcador: Contiene los datos de puntuación, nivel y las lineas que llevamos, sus metodos son muy sencillos ya que solo incrementan los contadores.
  • juego: Esta es la clase que determina las acciones que se pueden realizar, restringe los movimientos de las piezas en el tablero, actualiza los valores del tablero y los valores del marcador; esta clase lleva como parámetros las 3 clases anteriores ya que interactua directamente con sus propiedades y metodos.

Las piezas del juego
como ya habia mencionado las piezas se manejan mediante array


Pieza cuadrada




Pieza cuadrada, posee dos casilleros de lado. Por lo tanto el array que la define poseerá la siguiente información:
{2, 1, 1, 1, 1}
El primer 2 indica que la pieza posee dos casilleros de lado. Los siguientes unos codifican la forma de la pieza. Estos cuatro unos serán interpretados como una matriz de 2×2 por parte del juego.
Letra T
Esta pieza posee tres casillas de lado. Todas las piezas serán creadas dentro de una matriz cuadrada debido al modo en el cual se encuentra implementada la rotación de las fichas. El modo en el cual será definido el array para esta pieza será el siguiente:
{3, 0, 0, 0, 0, 1, 0, 1, 1, 1}

Letra Z
Esta pieza  tambien posee tres de lado. Y todas las piezas serán creadas dentro de una matriz cuadrada debido al modo en el cual se encuentra implementada la rotación de las fichas. El modo en el cual será definido el array para esta pieza será el siguiente:
{3, 1, 0, 0, 1, 1, 0, 0, 1, 0}
y las demas letras son iguales.

ahora un poco de este codigo para lo que fue el color y rotacion de las piezas

  public int[] pivot= new int[2];//[x][y]
  private int rot,pX,pY;
  int type;
  final private int block;

  pieza(int ptype,int h,int w,int b, color[] col){
    color[] colors=col;
    type=ptype;
    rot=0;
    block=b;
    pX=block*offset[type][rot][0]+4*block;
    pY=-5*block-block*offset[type][rot][3];
    pivot[0]=(3+offset[type][rot][0])+4;
    pivot[1]=-2-offset[type][rot][3];
  }

  void draw(){
    stroke(255);
    fill(colors[type]);
    for (int x=0;x<=4;x++){
      for (int y=0;y<=4;y++){
        if(form[type][rot][y][x]!=0){
          stroke(255);
          fill(colors[type]);
          rect(pX+block*x,pY+block*y,block,block);
        }
void rotate(){
    rot+=1;
    if (rot>3){
      rot=0;
    }
  }

No hay comentarios:

Publicar un comentario