TLlop - Clon del Tetris

Llop Site Home > JAVA > TLlop > Clases que aportan funcionalidad

Clases que aportan funcionalidad:

Clase EnteroYCadena

package ejercicio_5;

import java.io.*;

/** Título: TLlop
    Descripción: Prácticas capítulo 11, ejercicio 5
    Copyright: Copyright (c) 2005
    Empresa: Casa_Llop
    @author Albert_Lobo
    @version 1.5  */

/** Clase que encapsula un valor entero long y una cadena. Proporciona métodos para obtener y cambiar
    ambas variables. Es serializable porque los récords en el top 10 se almacenan en objetos de
    esta clase, y hay que poder grabarlos en el disco.*/
public class EnteroYCadena implements Serializable
{
  /** Variables de la clase. */
  private long entero;
  private String cadena;

  /** Constructor sin argmentos. El valor se inicializa a 0, y la cadena, vacía. */
  public EnteroYCadena ()
  {
    entero = 0;
    cadena = "";
  }

  /** Constructor cuyos argumentos sirven para inicializar las variables de la clase.
      @param nuevoEntero long    : Nuevo valor para la variable 'entero'.
      @param nuevaCadena String  : Nuevo valor para la variable 'cadena'. */
  public EnteroYCadena (long nuevoEntero, String nuevaCadena)
  {
    entero = nuevoEntero;
    cadena = nuevaCadena;
  }

  /** Devuelve el valor de la variable 'entero'.
      @return long : Valor de 'entero'. */
  public long getEntero ()
  {
    return entero;
  }

  /** Devuelve un String con el texto en 'cadena'.
      @return String  : Texto en 'cadena'. */
  public String getCadena ()
  {
    return cadena;
  }

  /** Define el valor de 'entero' con el valor pasado como argumento.
      @param nuevoEntero long  : Valor que tomará 'entero'. */
  public void setEntero (long nuevoEntero)
  {
    entero = nuevoEntero;
  }

  /** Define el texto en la variable 'cadena' con el String pasado como argumento.
      @param nuevaCadena String  : Nuevo texto para 'cadena'. */
  public void setCadena (String nuevaCadena)
  {
    cadena = nuevaCadena;
  }
}




Clase VKKeyCodeAString

package ejercicio_5;

import java.awt.event.*;

/** Clase que contiene una serie de variables 'EnteroYCadena'. 

    Cada una de estas variables contiene uno de los 'virtual key codes' de 'KeyEvent' -valores 'int' que
    representan todas las teclas en el teclado-, y una cadena con la correspondiente descripción. */
public class VKKeyCodeAString
{
  private EnteroYCadena CARACTER_INDEFINIDO;
  private EnteroYCadena PRIMERA;
  private EnteroYCadena ULTIMA;
  private EnteroYCadena IZQUIERDA_L;
  private EnteroYCadena TECLA_NUMPAD;
  private EnteroYCadena DERECHA_L;
  private EnteroYCadena ESTANDAR;
  private EnteroYCadena DESCONOCIDA;
  private EnteroYCadena TECLA_PULSADA;
  private EnteroYCadena TECLA_SOLTADA;
  private EnteroYCadena TECLA_PULSADA_SOLTADA;
  private EnteroYCadena N0;
  private EnteroYCadena N1;
  private EnteroYCadena N2;
  private EnteroYCadena N3;
  private EnteroYCadena N4;
  private EnteroYCadena N5;
  private EnteroYCadena N6;
  private EnteroYCadena N7;
  private EnteroYCadena N8;
  private EnteroYCadena N9;
  private EnteroYCadena A;
  private EnteroYCadena ACEPTA;
  private EnteroYCadena ANADE;
  private EnteroYCadena REPITE;
  private EnteroYCadena TODOS_CANDIDATOS;
  private EnteroYCadena ALFANUMERICA;
  private EnteroYCadena ALT;
  private EnteroYCadena ALTGR;
  private EnteroYCadena AMPERSAND;
  private EnteroYCadena ASTERISCO;
  private EnteroYCadena ARROBA;
  private EnteroYCadena B;
  private EnteroYCadena COMILLA_INVERTIDA;
  private EnteroYCadena BARRA_INVERTIDA;
  private EnteroYCadena RETROCESO;
  private EnteroYCadena ABRE_CORCHETE;
  private EnteroYCadena CIERRA_CORCHETE;
  private EnteroYCadena C;
  private EnteroYCadena CANCELA;
  private EnteroYCadena BLOQ_MAYUS;
  private EnteroYCadena SOMBRERO;
  private EnteroYCadena LIMPIA;
  private EnteroYCadena CIERRA_LLAVES;
  private EnteroYCadena CODE_INPUT;
  private EnteroYCadena DOS_PUNTOS;
  private EnteroYCadena COMA;
  private EnteroYCadena COMPOSE;
  private EnteroYCadena CONTROL;
  private EnteroYCadena CONVIERTE;
  private EnteroYCadena COPIA;
  private EnteroYCadena CORTA;
  private EnteroYCadena D;
  private EnteroYCadena PUNTITO;
  private EnteroYCadena ANILLO;
  private EnteroYCadena ACENTO_AGUDO;
  private EnteroYCadena BREVE;
  private EnteroYCadena CARON;
  private EnteroYCadena CEDILLA;
  private EnteroYCadena CIRCUMFLEJO;
  private EnteroYCadena DIERESIS;
  private EnteroYCadena DOBLE_AGUDO;
  private EnteroYCadena GRAVE;
  private EnteroYCadena IOTA;
  private EnteroYCadena MACRON;
  private EnteroYCadena OGONEK;
  private EnteroYCadena S_SEMIVOZ;
  private EnteroYCadena TILDE;
  private EnteroYCadena S_VOZ;
  private EnteroYCadena DECIMAL;
  private EnteroYCadena SUPRIME;
  private EnteroYCadena DIVIDE;
  private EnteroYCadena DOLAR;
  private EnteroYCadena FLECHA_ABAJO;
  private EnteroYCadena E;
  private EnteroYCadena FIN;
  private EnteroYCadena ENTER;
  private EnteroYCadena IGUAL;
  private EnteroYCadena ESCAPE;
  private EnteroYCadena EURO;
  private EnteroYCadena CIERRA_EXCLAMACION;
  private EnteroYCadena F;
  private EnteroYCadena F1;
  private EnteroYCadena F10;
  private EnteroYCadena F11;
  private EnteroYCadena F12;
  private EnteroYCadena F13;
  private EnteroYCadena F14;
  private EnteroYCadena F15;
  private EnteroYCadena F16;
  private EnteroYCadena F17;
  private EnteroYCadena F18;
  private EnteroYCadena F19;
  private EnteroYCadena F2;
  private EnteroYCadena F20;
  private EnteroYCadena F21;
  private EnteroYCadena F22;
  private EnteroYCadena F23;
  private EnteroYCadena F24;
  private EnteroYCadena F3;
  private EnteroYCadena F4;
  private EnteroYCadena F5;
  private EnteroYCadena F6;
  private EnteroYCadena F7;
  private EnteroYCadena F8;
  private EnteroYCadena F9;
  private EnteroYCadena FINAL;
  private EnteroYCadena BUSCA;
  private EnteroYCadena TODA_ANCHURA;
  private EnteroYCadena G;
  private EnteroYCadena MAYOR_QUE;
  private EnteroYCadena H;
  private EnteroYCadena MEDIA_ANCHURA;
  private EnteroYCadena AYUDA;
  private EnteroYCadena HIRAGANA;
  private EnteroYCadena INICIO;
  private EnteroYCadena I;
  private EnteroYCadena ON_OFF_M_ENTRADA;
  private EnteroYCadena INSERTA;
  private EnteroYCadena ABRE_EXCLAMACION;
  private EnteroYCadena J;
  private EnteroYCadena HIRAGANA_J;
  private EnteroYCadena KATAKANA_J;
  private EnteroYCadena ROMANA_J;
  private EnteroYCadena K;
  private EnteroYCadena KANA;
  private EnteroYCadena BLOQU_KANA;
  private EnteroYCadena KANJI;
  private EnteroYCadena KATAKANA;
  private EnteroYCadena F_ABAJO;
  private EnteroYCadena F_IZQUIERDA;
  private EnteroYCadena F_DERECHA;
  private EnteroYCadena F_ARRIBA;
  private EnteroYCadena L;
  private EnteroYCadena IZQUIERDA;
  private EnteroYCadena ABRE_PARENTESIS;
  private EnteroYCadena MENOR_QUE;
  private EnteroYCadena M;
  private EnteroYCadena META;
  private EnteroYCadena MENOS;
  private EnteroYCadena CAMBIO_MODO;
  private EnteroYCadena MULTIPLICA;
  private EnteroYCadena N;
  private EnteroYCadena NO_CONVERTIR;
  private EnteroYCadena NUM_LOCK;
  private EnteroYCadena ALMOHADILLA;
  private EnteroYCadena NUMPAD_0;
  private EnteroYCadena NUMPAD_1;
  private EnteroYCadena NUMPAD_2;
  private EnteroYCadena NUMPAD_3;
  private EnteroYCadena NUMPAD_4;
  private EnteroYCadena NUMPAD_5;
  private EnteroYCadena NUMPAD_6;
  private EnteroYCadena NUMPAD_7;
  private EnteroYCadena NUMPAD_8;
  private EnteroYCadena NUMPAD_9;
  private EnteroYCadena O;
  private EnteroYCadena ABRE_LLAVES;
  private EnteroYCadena P;
  private EnteroYCadena AV_PAG;
  private EnteroYCadena RE_PAG;
  private EnteroYCadena PEGA;
  private EnteroYCadena PAUSA;
  private EnteroYCadena PUNTO;
  private EnteroYCadena MAS;
  private EnteroYCadena CANDIDATO_PREVIO;
  private EnteroYCadena IMPR_PANT;
  private EnteroYCadena PROPS;
  private EnteroYCadena Q;
  private EnteroYCadena COMILLA;
  private EnteroYCadena DOBLES_COMILLAS;
  private EnteroYCadena R;
  private EnteroYCadena DERECHA;
  private EnteroYCadena CIERRA_PARENTESIS;
  private EnteroYCadena CARAC_ROMANOS;
  private EnteroYCadena S;
  private EnteroYCadena BLOQ_DESLIZAR;
  private EnteroYCadena PUNTO_COMA;
  private EnteroYCadena SEPARADOR_OBS;
  private EnteroYCadena SEPARADOR;
  private EnteroYCadena MAYUSCULAS;
  private EnteroYCadena BARRA;
  private EnteroYCadena ESPACIO;
  private EnteroYCadena STOP;
  private EnteroYCadena SUSTRAE;
  private EnteroYCadena T;
  private EnteroYCadena TABULACION;
  private EnteroYCadena U;
  private EnteroYCadena INDEFINIDO;
  private EnteroYCadena GUION_BAJO;
  private EnteroYCadena DESHACER;
  private EnteroYCadena ARRIBA;
  private EnteroYCadena V;
  private EnteroYCadena W;
  private EnteroYCadena X;
  private EnteroYCadena Y;
  private EnteroYCadena Z;

  /** Constructor por defecto. */
  public VKKeyCodeAString ()
  {
    /** Se inicializan todas las variables con un 'virtual key code', y su descripción. */
    CARACTER_INDEFINIDO = new EnteroYCadena (KeyEvent.CHAR_UNDEFINED, "Caracter Indefinido");
    PRIMERA = new EnteroYCadena (KeyEvent.KEY_FIRST, "Primera");
    ULTIMA = new EnteroYCadena (KeyEvent.KEY_LAST, "Última");
    IZQUIERDA_L = new EnteroYCadena (KeyEvent.KEY_LOCATION_LEFT, "Izquierda");
    TECLA_NUMPAD = new EnteroYCadena (KeyEvent.KEY_LOCATION_NUMPAD, "Tecla NumPad");
    DERECHA_L = new EnteroYCadena (KeyEvent.KEY_LOCATION_RIGHT, "Derecha");
    ESTANDAR = new EnteroYCadena (KeyEvent.KEY_LOCATION_STANDARD, "Mejor no use esta tecla - ");
    DESCONOCIDA = new EnteroYCadena (KeyEvent.KEY_LOCATION_UNKNOWN, "Desconocida");
    TECLA_PULSADA = new EnteroYCadena (KeyEvent.KEY_PRESSED, "Tecla Pulsada");
    TECLA_SOLTADA = new EnteroYCadena (KeyEvent.KEY_RELEASED, "Tecla Soltada");
    TECLA_PULSADA_SOLTADA = new EnteroYCadena (KeyEvent.KEY_TYPED, "Tecla Pulsada y Soltada");
    N0 = new EnteroYCadena (KeyEvent.VK_0, "");
    N1 = new EnteroYCadena (KeyEvent.VK_1, "");
    N2 = new EnteroYCadena (KeyEvent.VK_2, "");
    N3 = new EnteroYCadena (KeyEvent.VK_3, "");
    N4 = new EnteroYCadena (KeyEvent.VK_4, "");
    N5 = new EnteroYCadena (KeyEvent.VK_5, "");
    N6 = new EnteroYCadena (KeyEvent.VK_6, "");
    N7 = new EnteroYCadena (KeyEvent.VK_7, "");
    N8 = new EnteroYCadena (KeyEvent.VK_8, "");
    N9 = new EnteroYCadena (KeyEvent.VK_9, "");
    A = new EnteroYCadena (KeyEvent.VK_A, "");
    ACEPTA = new EnteroYCadena (KeyEvent.VK_ACCEPT, "Acepta");
    ANADE = new EnteroYCadena (KeyEvent.VK_ADD, "Añade");
    REPITE = new EnteroYCadena (KeyEvent.VK_AGAIN, "Repite");
    TODOS_CANDIDATOS = new EnteroYCadena (KeyEvent.VK_ALL_CANDIDATES, "Todos los Candidatos");
    ALFANUMERICA = new EnteroYCadena (KeyEvent.VK_ALPHANUMERIC, "Alfanumérica");
    ALT = new EnteroYCadena (KeyEvent.VK_ALT, "Alt");
    ALTGR = new EnteroYCadena (KeyEvent.VK_ALT_GRAPH, "AltGr");
    AMPERSAND = new EnteroYCadena (KeyEvent.VK_AMPERSAND, "&");
    ASTERISCO = new EnteroYCadena (KeyEvent.VK_ASTERISK, "*");
    ARROBA = new EnteroYCadena (KeyEvent.VK_AT, "@");
    B = new EnteroYCadena (KeyEvent.VK_B, "");
    COMILLA_INVERTIDA = new EnteroYCadena (KeyEvent.VK_BACK_QUOTE, "");
    BARRA_INVERTIDA = new EnteroYCadena (KeyEvent.VK_BACK_SLASH, "");
    RETROCESO = new EnteroYCadena (KeyEvent.VK_BACK_SPACE, "Retroceso");
    ABRE_CORCHETE = new EnteroYCadena (KeyEvent.VK_BRACELEFT, "");
    CIERRA_CORCHETE = new EnteroYCadena (KeyEvent.VK_BRACERIGHT, "");
    C = new EnteroYCadena (KeyEvent.VK_C, "");
    CANCELA = new EnteroYCadena (KeyEvent.VK_CANCEL, "Cancela");
    BLOQ_MAYUS = new EnteroYCadena (KeyEvent.VK_CAPS_LOCK, "Bloq Mayus");
    SOMBRERO = new EnteroYCadena (KeyEvent.VK_CIRCUMFLEX, "");
    LIMPIA = new EnteroYCadena (KeyEvent.VK_CLEAR, "Limpia");
    CIERRA_LLAVES = new EnteroYCadena (KeyEvent.VK_CLOSE_BRACKET, "");
    CODE_INPUT = new EnteroYCadena (KeyEvent.VK_CODE_INPUT, "Code Input");
    DOS_PUNTOS = new EnteroYCadena (KeyEvent.VK_COLON, "");
    COMA = new EnteroYCadena (KeyEvent.VK_COMMA, "");
    COMPOSE = new EnteroYCadena (KeyEvent.VK_COMPOSE, "Compose");
    CONTROL = new EnteroYCadena (KeyEvent.VK_CONTROL, "Control");
    CONVIERTE = new EnteroYCadena (KeyEvent.VK_CONVERT, "Convierte");
    COPIA = new EnteroYCadena (KeyEvent.VK_COPY, "Copia");
    CORTA = new EnteroYCadena (KeyEvent.VK_CUT, "Corta");
    D = new EnteroYCadena (KeyEvent.VK_D, "");
    PUNTITO = new EnteroYCadena (KeyEvent.VK_DEAD_ABOVEDOT, "Puntito");
    ANILLO = new EnteroYCadena (KeyEvent.VK_DEAD_ABOVERING, "Anillo");
    ACENTO_AGUDO = new EnteroYCadena (KeyEvent.VK_DEAD_ACUTE, "");
    BREVE = new EnteroYCadena (KeyEvent.VK_DEAD_BREVE, "Breve");
    CARON = new EnteroYCadena (KeyEvent.VK_DEAD_CARON, "Caron");
    CEDILLA = new EnteroYCadena (KeyEvent.VK_DEAD_CEDILLA, "");
    CIRCUMFLEJO = new EnteroYCadena (KeyEvent.VK_DEAD_CIRCUMFLEX, "Acento circumflejo");
    DIERESIS = new EnteroYCadena (KeyEvent.VK_DEAD_DIAERESIS, "Diéresis");
    DOBLE_AGUDO = new EnteroYCadena (KeyEvent.VK_DEAD_DOUBLEACUTE, "Doble agudo");
    GRAVE = new EnteroYCadena (KeyEvent.VK_DEAD_GRAVE, "");
    IOTA = new EnteroYCadena (KeyEvent.VK_DEAD_IOTA, "");
    MACRON = new EnteroYCadena (KeyEvent.VK_DEAD_MACRON, "");
    OGONEK = new EnteroYCadena (KeyEvent.VK_DEAD_OGONEK, "");
    S_SEMIVOZ = new EnteroYCadena (KeyEvent.VK_DEAD_SEMIVOICED_SOUND, "Sonido Semivoz");
    TILDE = new EnteroYCadena (KeyEvent.VK_DEAD_TILDE, "Tilde");
    S_VOZ = new EnteroYCadena (KeyEvent.VK_DEAD_VOICED_SOUND, "Sonido Voz");
    DECIMAL = new EnteroYCadena (KeyEvent.VK_DECIMAL, "Decimal");
    SUPRIME = new EnteroYCadena (KeyEvent.VK_DELETE, "Suprime");
    DIVIDE = new EnteroYCadena (KeyEvent.VK_DIVIDE, "Divide");
    DOLAR = new EnteroYCadena (KeyEvent.VK_DOLLAR, "");
    FLECHA_ABAJO = new EnteroYCadena (KeyEvent.VK_DOWN, "Abajo");
    E = new EnteroYCadena (KeyEvent.VK_E, "");
    FIN = new EnteroYCadena (KeyEvent.VK_END, "Fin");
    ENTER = new EnteroYCadena (KeyEvent.VK_ENTER, "Enter");
    IGUAL = new EnteroYCadena (KeyEvent.VK_EQUALS, "Igual");
    ESCAPE = new EnteroYCadena (KeyEvent.VK_ESCAPE, "Escape");
    EURO = new EnteroYCadena (KeyEvent.VK_EURO_SIGN, "");
    CIERRA_EXCLAMACION = new EnteroYCadena (KeyEvent.VK_EXCLAMATION_MARK, "");
    F = new EnteroYCadena (KeyEvent.VK_F, "");
    F1 = new EnteroYCadena (KeyEvent.VK_F1, "F1");
    F10 = new EnteroYCadena (KeyEvent.VK_F10, "F10");
    F11 = new EnteroYCadena (KeyEvent.VK_F11, "F11");
    F12 = new EnteroYCadena (KeyEvent.VK_F12, "F12");
    F13 = new EnteroYCadena (KeyEvent.VK_F13, "F13");
    F14 = new EnteroYCadena (KeyEvent.VK_F14, "F14");
    F15 = new EnteroYCadena (KeyEvent.VK_F15, "F15");
    F16 = new EnteroYCadena (KeyEvent.VK_F16, "F16");
    F17 = new EnteroYCadena (KeyEvent.VK_F17, "F17");
    F18 = new EnteroYCadena (KeyEvent.VK_F18, "F18");
    F19 = new EnteroYCadena (KeyEvent.VK_F19, "F19");
    F2 = new EnteroYCadena (KeyEvent.VK_F2, "F2");
    F20 = new EnteroYCadena (KeyEvent.VK_F20, "F20");
    F21 = new EnteroYCadena (KeyEvent.VK_F21, "F21");
    F22 = new EnteroYCadena (KeyEvent.VK_F22, "F22");
    F23 = new EnteroYCadena (KeyEvent.VK_F23, "F23");
    F24 = new EnteroYCadena (KeyEvent.VK_F24, "F24");
    F3 = new EnteroYCadena (KeyEvent.VK_F3, "F3");
    F4 = new EnteroYCadena (KeyEvent.VK_F4, "F4");
    F5 = new EnteroYCadena (KeyEvent.VK_F5, "F5");
    F6 = new EnteroYCadena (KeyEvent.VK_F6, "F6");
    F7 = new EnteroYCadena (KeyEvent.VK_F7, "F7");
    F8 = new EnteroYCadena (KeyEvent.VK_F8, "F8");
    F9 = new EnteroYCadena (KeyEvent.VK_F9, "F9");
    FINAL = new EnteroYCadena (KeyEvent.VK_FINAL, "Final");
    BUSCA = new EnteroYCadena (KeyEvent.VK_FIND, "Busca");
    TODA_ANCHURA = new EnteroYCadena (KeyEvent.VK_FULL_WIDTH, "Toda la Anchura");
    G = new EnteroYCadena (KeyEvent.VK_G, "");
    MAYOR_QUE = new EnteroYCadena (KeyEvent.VK_GREATER, "");
    H = new EnteroYCadena (KeyEvent.VK_H, "");
    MEDIA_ANCHURA = new EnteroYCadena (KeyEvent.VK_HALF_WIDTH, "Media Anchura");
    AYUDA = new EnteroYCadena (KeyEvent.VK_HELP, "Ayuda");
    HIRAGANA = new EnteroYCadena (KeyEvent.VK_HIRAGANA, "Hiragana");
    INICIO = new EnteroYCadena (KeyEvent.VK_HOME, "Inicio");
    I = new EnteroYCadena (KeyEvent.VK_I, "");
    ON_OFF_M_ENTRADA = new EnteroYCadena (KeyEvent.VK_INPUT_METHOD_ON_OFF, "Activar/Desactivar Método Entrada");
    INSERTA = new EnteroYCadena (KeyEvent.VK_INSERT, "Inserta");
    ABRE_EXCLAMACION = new EnteroYCadena (KeyEvent.VK_INVERTED_EXCLAMATION_MARK, "");
    J = new EnteroYCadena (KeyEvent.VK_J, "");
    HIRAGANA_J = new EnteroYCadena (KeyEvent.VK_JAPANESE_HIRAGANA, "Hiragana Japonés");
    KATAKANA_J = new EnteroYCadena (KeyEvent.VK_JAPANESE_KATAKANA, "Katana Japonesa");
    ROMANA_J = new EnteroYCadena (KeyEvent.VK_JAPANESE_ROMAN, "Romana Japonesa");
    K = new EnteroYCadena (KeyEvent.VK_K, "");
    KANA = new EnteroYCadena (KeyEvent.VK_KANA, "Kana");
    BLOQU_KANA = new EnteroYCadena (KeyEvent.VK_KANA_LOCK, "Bloquea Kana");
    KANJI = new EnteroYCadena (KeyEvent.VK_KANJI, "Kanji");
    KATAKANA = new EnteroYCadena (KeyEvent.VK_KATAKANA, "Katakana");
    F_ABAJO = new EnteroYCadena (KeyEvent.VK_KP_DOWN, "Flecha Abajo");
    F_IZQUIERDA = new EnteroYCadena (KeyEvent.VK_KP_LEFT, "Flecha Izquierda");
    F_DERECHA = new EnteroYCadena (KeyEvent.VK_KP_RIGHT, "Flecha Derecha");
    F_ARRIBA = new EnteroYCadena (KeyEvent.VK_KP_UP, "Flecha Arriba");
    L = new EnteroYCadena (KeyEvent.VK_L, "");
    IZQUIERDA = new EnteroYCadena (KeyEvent.VK_LEFT, "Izquierda");
    ABRE_PARENTESIS = new EnteroYCadena (KeyEvent.VK_LEFT_PARENTHESIS, "");
    MENOR_QUE = new EnteroYCadena (KeyEvent.VK_LESS, "");
    M = new EnteroYCadena (KeyEvent.VK_M, "");
    META = new EnteroYCadena (KeyEvent.VK_META, "Meta");
    MENOS = new EnteroYCadena (KeyEvent.VK_MINUS, "");
    CAMBIO_MODO = new EnteroYCadena (KeyEvent.VK_MODECHANGE, "Cambio Modo");
    MULTIPLICA = new EnteroYCadena (KeyEvent.VK_MULTIPLY, "Multiplica");
    N = new EnteroYCadena (KeyEvent.VK_N, "");
    NO_CONVERTIR = new EnteroYCadena (KeyEvent.VK_NONCONVERT, "No Convertir");
    NUM_LOCK = new EnteroYCadena (KeyEvent.VK_NUM_LOCK, "Num Lock");
    ALMOHADILLA = new EnteroYCadena (KeyEvent.VK_NUMBER_SIGN, "");
    NUMPAD_0 = new EnteroYCadena (KeyEvent.VK_NUMPAD0, "NumPad ");
    NUMPAD_1 = new EnteroYCadena (KeyEvent.VK_NUMPAD1, "NumPad ");
    NUMPAD_2 = new EnteroYCadena (KeyEvent.VK_NUMPAD2, "NumPad ");
    NUMPAD_3 = new EnteroYCadena (KeyEvent.VK_NUMPAD3, "NumPad ");
    NUMPAD_4 = new EnteroYCadena (KeyEvent.VK_NUMPAD4, "NumPad ");
    NUMPAD_5 = new EnteroYCadena (KeyEvent.VK_NUMPAD5, "NumPad ");
    NUMPAD_6 = new EnteroYCadena (KeyEvent.VK_NUMPAD6, "NumPad ");
    NUMPAD_7 = new EnteroYCadena (KeyEvent.VK_NUMPAD7, "NumPad ");
    NUMPAD_8 = new EnteroYCadena (KeyEvent.VK_NUMPAD8, "NumPad ");
    NUMPAD_9 = new EnteroYCadena (KeyEvent.VK_NUMPAD9, "NumPad ");
    O = new EnteroYCadena (KeyEvent.VK_O, "");
    ABRE_LLAVES = new EnteroYCadena (KeyEvent.VK_OPEN_BRACKET, "");
    P = new EnteroYCadena (KeyEvent.VK_P, "");
    AV_PAG = new EnteroYCadena (KeyEvent.VK_PAGE_DOWN, "Avance Página");
    RE_PAG = new EnteroYCadena (KeyEvent.VK_PAGE_UP, "Retroceso Página");
    PEGA = new EnteroYCadena (KeyEvent.VK_PASTE, "Pega");
    PAUSA = new EnteroYCadena (KeyEvent.VK_PAUSE, "Pausa");
    PUNTO = new EnteroYCadena (KeyEvent.VK_PERIOD, "");
    MAS = new EnteroYCadena (KeyEvent.VK_PLUS, "");
    CANDIDATO_PREVIO = new EnteroYCadena (KeyEvent.VK_PREVIOUS_CANDIDATE, "Candidato Previo");
    IMPR_PANT = new EnteroYCadena (KeyEvent.VK_PRINTSCREEN, "Imprime Pantalla");
    PROPS = new EnteroYCadena (KeyEvent.VK_PROPS, "Props");
    Q = new EnteroYCadena (KeyEvent.VK_Q, "");
    COMILLA = new EnteroYCadena (KeyEvent.VK_QUOTE, "");
    DOBLES_COMILLAS = new EnteroYCadena (KeyEvent.VK_QUOTEDBL, "");
    R = new EnteroYCadena (KeyEvent.VK_R, "");
    DERECHA = new EnteroYCadena (KeyEvent.VK_RIGHT, "Derecha");
    CIERRA_PARENTESIS = new EnteroYCadena (KeyEvent.VK_RIGHT_PARENTHESIS, "");
    CARAC_ROMANOS = new EnteroYCadena (KeyEvent.VK_ROMAN_CHARACTERS, "Caracteres Romanos");
    S = new EnteroYCadena (KeyEvent.VK_S, "");
    BLOQ_DESLIZAR = new EnteroYCadena (KeyEvent.VK_SCROLL_LOCK, "Bloquea Deslizar");
    PUNTO_COMA = new EnteroYCadena (KeyEvent.VK_SEMICOLON, "");
    SEPARADOR_OBS = new EnteroYCadena (KeyEvent.VK_SEPARATER, "Separador Obsoleto");
    SEPARADOR = new EnteroYCadena (KeyEvent.VK_SEPARATOR, "Separador");
    MAYUSCULAS = new EnteroYCadena (KeyEvent.VK_SHIFT, "Mayúsculas");
    BARRA = new EnteroYCadena (KeyEvent.VK_SLASH, "");
    ESPACIO = new EnteroYCadena (KeyEvent.VK_SPACE, "Espacio");
    STOP = new EnteroYCadena (KeyEvent.VK_STOP, "");
    SUSTRAE = new EnteroYCadena (KeyEvent.VK_SUBTRACT, "Substrae");
    T = new EnteroYCadena (KeyEvent.VK_T, "");
    TABULACION = new EnteroYCadena (KeyEvent.VK_TAB, "Tabulación");
    U = new EnteroYCadena (KeyEvent.VK_U, "");
    INDEFINIDO = new EnteroYCadena (KeyEvent.VK_UNDEFINED, "Indefinido");
    GUION_BAJO = new EnteroYCadena (KeyEvent.VK_UNDERSCORE, "");
    DESHACER = new EnteroYCadena (KeyEvent.VK_UNDO, "Deshacer");
    ARRIBA = new EnteroYCadena (KeyEvent.VK_UP, "Arriba");
    V = new EnteroYCadena (KeyEvent.VK_V, "");
    W = new EnteroYCadena (KeyEvent.VK_W, "");
    X = new EnteroYCadena (KeyEvent.VK_X, "");
    Y = new EnteroYCadena (KeyEvent.VK_Y, "");
    Z = new EnteroYCadena (KeyEvent.VK_Z, "");
  }

  /** Método para conocer la descripción de una tecla.
      @param tecla int : Entero que representa el 'virtual key code' de una tecla pulsada.
      @return String   : Cadena con la descripción de la 'tecla'. */
  public String getDescripcion (int tecla)
  {
    if (tecla == CARACTER_INDEFINIDO.getEntero ())
      return CARACTER_INDEFINIDO.getCadena ();
    else if (tecla == PRIMERA.getEntero ())
      return PRIMERA.getCadena ();
    else if (tecla == ULTIMA.getEntero ())
      return ULTIMA.getCadena ();
    else if (tecla == TECLA_NUMPAD.getEntero ())
      return TECLA_NUMPAD.getCadena ();
    else if (tecla == DESCONOCIDA.getEntero ())
      return ESTANDAR.getCadena ();
    else if (tecla == TECLA_PULSADA.getEntero ())
      return TECLA_PULSADA.getCadena ();
    else if (tecla == TECLA_SOLTADA.getEntero ())
      return TECLA_SOLTADA.getCadena ();
    else if (tecla == TECLA_PULSADA_SOLTADA.getEntero ())
      return TECLA_PULSADA_SOLTADA.getCadena ();
    else if (tecla == N0.getEntero ())
      return N0.getCadena ();
    else if (tecla == N1.getEntero ())
      return N1.getCadena ();
    else if (tecla == N2.getEntero ())
      return N2.getCadena ();
    else if (tecla == N3.getEntero ())
      return N3.getCadena ();
    else if (tecla == N4.getEntero ())
      return N4.getCadena ();
    else if (tecla == N5.getEntero ())
      return N5.getCadena ();
    else if (tecla == N6.getEntero ())
      return N6.getCadena ();
    else if (tecla == N7.getEntero ())
      return N7.getCadena ();
    else if (tecla == N8.getEntero ())
      return N8.getCadena ();
    else if (tecla == N9.getEntero ())
      return N9.getCadena ();
    else if (tecla == A.getEntero ())
      return A.getCadena ();
    else if (tecla == ACEPTA.getEntero ())
      return ACEPTA.getCadena ();
    else if (tecla == ANADE.getEntero ())
      return ANADE.getCadena ();
    else if (tecla == REPITE.getEntero ())
      return REPITE.getCadena ();
    else if (tecla == TODOS_CANDIDATOS.getEntero ())
      return TODOS_CANDIDATOS.getCadena ();
    else if (tecla == ALFANUMERICA.getEntero ())
      return ALFANUMERICA.getCadena ();
    else if (tecla == ALT.getEntero ())
      return ALT.getCadena ();
    else if (tecla == ALTGR.getEntero ())
      return ALTGR.getCadena ();
    else if (tecla == AMPERSAND.getEntero ())
      return AMPERSAND.getCadena ();
    else if (tecla == ASTERISCO.getEntero ())
      return ASTERISCO.getCadena ();
    else if (tecla == ARROBA.getEntero ())
      return ARROBA.getCadena ();
    else if (tecla == B.getEntero ())
      return B.getCadena ();
    else if (tecla == COMILLA_INVERTIDA.getEntero ())
      return COMILLA_INVERTIDA.getCadena ();
    else if (tecla == BARRA_INVERTIDA.getEntero ())
      return BARRA_INVERTIDA.getCadena ();
    else if (tecla == RETROCESO.getEntero ())
      return RETROCESO.getCadena ();
    else if (tecla == ABRE_CORCHETE.getEntero ())
      return ABRE_CORCHETE.getCadena ();
    else if (tecla == CIERRA_CORCHETE.getEntero ())
      return CIERRA_CORCHETE.getCadena ();
    else if (tecla == C.getEntero ())
      return C.getCadena ();
    else if (tecla == CANCELA.getEntero ())
      return CANCELA.getCadena ();
    else if (tecla == BLOQ_MAYUS.getEntero ())
      return BLOQ_MAYUS.getCadena ();
    else if (tecla == SOMBRERO.getEntero ())
      return SOMBRERO.getCadena ();
    else if (tecla == LIMPIA.getEntero ())
      return LIMPIA.getCadena ();
    else if (tecla == CIERRA_LLAVES.getEntero ())
      return CIERRA_LLAVES.getCadena ();
    else if (tecla == CODE_INPUT.getEntero ())
      return CODE_INPUT.getCadena ();
    else if (tecla == DOS_PUNTOS.getEntero ())
      return DOS_PUNTOS.getCadena ();
    else if (tecla == COMA.getEntero ())
      return COMA.getCadena ();
    else if (tecla == COMPOSE.getEntero ())
      return COMPOSE.getCadena ();
    else if (tecla == CONTROL.getEntero ())
      return CONTROL.getCadena ();
    else if (tecla == CONVIERTE.getEntero ())
      return CONVIERTE.getCadena ();
    else if (tecla == COPIA.getEntero ())
      return COPIA.getCadena ();
    else if (tecla == CORTA.getEntero ())
      return CORTA.getCadena ();
    else if (tecla == D.getEntero ())
      return D.getCadena ();
    else if (tecla == PUNTITO.getEntero ())
      return PUNTITO.getCadena ();
    else if (tecla == ANILLO.getEntero ())
      return ANILLO.getCadena ();
    else if (tecla == ACENTO_AGUDO.getEntero ())
      return ACENTO_AGUDO.getCadena ();
    else if (tecla == BREVE.getEntero ())
      return BREVE.getCadena ();
    else if (tecla == CARON.getEntero ())
      return CARON.getCadena ();
    else if (tecla == CEDILLA.getEntero ())
      return CEDILLA.getCadena ();
    else if (tecla == CIRCUMFLEJO.getEntero ())
      return CIRCUMFLEJO.getCadena ();
    else if (tecla == DIERESIS.getEntero ())
      return DIERESIS.getCadena ();
    else if (tecla == DOBLE_AGUDO.getEntero ())
      return DOBLE_AGUDO.getCadena ();
    else if (tecla == GRAVE.getEntero ())
      return GRAVE.getCadena ();
    else if (tecla == IOTA.getEntero ())
      return IOTA.getCadena ();
    else if (tecla == MACRON.getEntero ())
      return MACRON.getCadena ();
    else if (tecla == OGONEK.getEntero ())
      return OGONEK.getCadena ();
    else if (tecla == S_SEMIVOZ.getEntero ())
      return S_SEMIVOZ.getCadena ();
    else if (tecla == TILDE.getEntero ())
      return TILDE.getCadena ();
    else if (tecla == S_VOZ.getEntero ())
      return S_VOZ.getCadena ();
    else if (tecla == DECIMAL.getEntero ())
      return DECIMAL.getCadena ();
    else if (tecla == SUPRIME.getEntero ())
      return SUPRIME.getCadena ();
    else if (tecla == DIVIDE.getEntero ())
      return DIVIDE.getCadena ();
    else if (tecla == DOLAR.getEntero ())
      return DOLAR.getCadena ();
    else if (tecla == E.getEntero ())
      return E.getCadena ();
    else if (tecla == FIN.getEntero ())
      return FIN.getCadena ();
    else if (tecla == ENTER.getEntero ())
      return ENTER.getCadena ();
    else if (tecla == IGUAL.getEntero ())
      return IGUAL.getCadena ();
    else if (tecla == ESCAPE.getEntero ())
      return ESCAPE.getCadena ();
    else if (tecla == EURO.getEntero ())
      return EURO.getCadena ();
    else if (tecla == CIERRA_EXCLAMACION.getEntero ())
      return CIERRA_EXCLAMACION.getCadena ();
    else if (tecla == F.getEntero ())
      return F.getCadena ();
    else if (tecla == F1.getEntero ())
      return F1.getCadena ();
    else if (tecla == F10.getEntero ())
      return F10.getCadena ();
    else if (tecla == F11.getEntero ())
      return F11.getCadena ();
    else if (tecla == F12.getEntero ())
      return F12.getCadena ();
    else if (tecla == F13.getEntero ())
      return F13.getCadena ();
    else if (tecla == F14.getEntero ())
      return F14.getCadena ();
    else if (tecla == F15.getEntero ())
      return F15.getCadena ();
    else if (tecla == F16.getEntero ())
      return F16.getCadena ();
    else if (tecla == F17.getEntero ())
      return F17.getCadena ();
    else if (tecla == F18.getEntero ())
      return F18.getCadena ();
    else if (tecla == F19.getEntero ())
      return F19.getCadena ();
    else if (tecla == F2.getEntero ())
      return F2.getCadena ();
    else if (tecla == F20.getEntero ())
      return F20.getCadena ();
    else if(tecla == F21.getEntero ())
      return F21.getCadena ();
    else if (tecla == F22.getEntero ())
      return F22.getCadena ();
    else if (tecla == F23.getEntero ())
      return F23.getCadena ();
    else if (tecla == F24.getEntero ())
      return F24.getCadena ();
    else if (tecla == F3.getEntero ())
      return F3.getCadena ();
    else if (tecla == F4.getEntero ())
      return F4.getCadena ();
    else if (tecla == F5.getEntero ())
      return F5.getCadena ();
    else if (tecla == F6.getEntero ())
      return F6.getCadena ();
    else if (tecla == F7.getEntero ())
      return F7.getCadena ();
    else if (tecla == F8.getEntero ())
      return F8.getCadena ();
    else if (tecla == F9.getEntero ())
      return F9.getCadena ();
    else if (tecla == FINAL.getEntero ())
      return FINAL.getCadena ();
    else if (tecla == BUSCA.getEntero ())
      return BUSCA.getCadena ();
    else if (tecla == TODA_ANCHURA.getEntero ())
      return TODA_ANCHURA.getCadena ();
    else if (tecla == G.getEntero ())
      return G.getCadena ();
    else if (tecla == MAYOR_QUE.getEntero ())
      return MAYOR_QUE.getCadena ();
    else if (tecla == H.getEntero ())
      return H.getCadena ();
    else if (tecla == MEDIA_ANCHURA.getEntero ())
      return MEDIA_ANCHURA.getCadena ();
    else if (tecla == AYUDA.getEntero ())
      return AYUDA.getCadena ();
    else if (tecla == HIRAGANA.getEntero ())
      return HIRAGANA.getCadena ();
    else if (tecla == INICIO.getEntero ())
      return INICIO.getCadena ();
    else if (tecla == I.getEntero ())
      return I.getCadena ();
    else if (tecla == ON_OFF_M_ENTRADA.getEntero ())
      return ON_OFF_M_ENTRADA.getCadena ();
    else if (tecla == INSERTA.getEntero ())
      return INSERTA.getCadena ();
    else if (tecla == ABRE_EXCLAMACION.getEntero ())
      return ABRE_EXCLAMACION.getCadena ();
    else if (tecla == J.getEntero ())
      return J.getCadena ();
    else if (tecla == HIRAGANA_J.getEntero ())
      return HIRAGANA_J.getCadena ();
    else if (tecla == KATAKANA_J.getEntero ())
      return KATAKANA_J.getCadena ();
    else if (tecla == ROMANA_J.getEntero ())
      return ROMANA_J.getCadena ();
    else if (tecla == K.getEntero ())
      return K.getCadena ();
    else if (tecla == KANA.getEntero ())
      return KANA.getCadena ();
    else if (tecla == BLOQU_KANA.getEntero ())
      return BLOQU_KANA.getCadena ();
    else if (tecla == KANJI.getEntero ())
      return KANJI.getCadena ();
    else if (tecla == KATAKANA.getEntero ())
      return KATAKANA.getCadena ();
    else if (tecla == F_ABAJO.getEntero ())
      return F_ABAJO.getCadena ();
    else if (tecla == F_IZQUIERDA.getEntero ())
      return F_IZQUIERDA.getCadena ();
    else if (tecla == F_DERECHA.getEntero ())
      return F_DERECHA.getCadena ();
    else if (tecla == F_ARRIBA.getEntero ())
      return F_ARRIBA.getCadena ();
    else if (tecla == L.getEntero ())
      return L.getCadena ();
    else if (tecla == IZQUIERDA.getEntero ())
      return IZQUIERDA.getCadena ();
    else if (tecla == ABRE_PARENTESIS.getEntero ())
      return ABRE_PARENTESIS.getCadena ();
    else if (tecla == MENOR_QUE.getEntero ())
      return MENOR_QUE.getCadena ();
    else if (tecla == M.getEntero ())
      return M.getCadena ();
    else if (tecla == META.getEntero ())
      return META.getCadena ();
    else if (tecla == MENOS.getEntero ())
      return MENOS.getCadena ();
    else if (tecla == CAMBIO_MODO.getEntero ())
      return CAMBIO_MODO.getCadena ();
    else if (tecla == MULTIPLICA.getEntero ())
      return MULTIPLICA.getCadena ();
    else if (tecla == N.getEntero ())
      return N.getCadena ();
    else if (tecla == NO_CONVERTIR.getEntero ())
      return NO_CONVERTIR.getCadena ();
    else if (tecla == NUM_LOCK.getEntero ())
      return NUM_LOCK.getCadena ();
    else if (tecla == ALMOHADILLA.getEntero ())
      return ALMOHADILLA.getCadena ();
    else if (tecla == NUMPAD_0.getEntero ())
      return NUMPAD_0.getCadena ();
    else if (tecla == NUMPAD_1.getEntero ())
      return NUMPAD_1.getCadena ();
    else if (tecla == NUMPAD_2.getEntero ())
      return NUMPAD_2.getCadena ();
    else if (tecla == NUMPAD_3.getEntero ())
      return NUMPAD_3.getCadena ();
    else if (tecla == NUMPAD_4.getEntero ())
      return NUMPAD_4.getCadena ();
    else if (tecla == NUMPAD_5.getEntero ())
      return NUMPAD_5.getCadena ();
    else if (tecla == NUMPAD_6.getEntero ())
      return NUMPAD_6.getCadena ();
    else if (tecla == NUMPAD_7.getEntero ())
      return NUMPAD_7.getCadena ();
    else if (tecla == NUMPAD_8.getEntero ())
      return NUMPAD_8.getCadena ();
    else if (tecla == NUMPAD_9.getEntero ())
      return NUMPAD_9.getCadena ();
    else if (tecla == O.getEntero ())
      return O.getCadena ();
    else if (tecla == ABRE_LLAVES.getEntero ())
      return ABRE_LLAVES.getCadena ();
    else if (tecla == P.getEntero ())
      return P.getCadena ();
    else if (tecla == AV_PAG.getEntero ())
      return AV_PAG.getCadena ();
    else if (tecla == RE_PAG.getEntero ())
      return RE_PAG.getCadena ();
    else if (tecla == PEGA.getEntero ())
      return PEGA.getCadena ();
    else if (tecla == PAUSA.getEntero ())
      return PAUSA.getCadena ();
    else if (tecla == PUNTO.getEntero ())
      return PUNTO.getCadena ();
    else if (tecla == MAS.getEntero ())
      return MAS.getCadena ();
    else if (tecla == CANDIDATO_PREVIO.getEntero ())
      return CANDIDATO_PREVIO.getCadena ();
    else if (tecla == IMPR_PANT.getEntero ())
      return IMPR_PANT.getCadena ();
    else if (tecla == PROPS.getEntero ())
      return PROPS.getCadena ();
    else if (tecla == Q.getEntero ())
      return Q.getCadena ();
    else if (tecla == COMILLA.getEntero ())
      return COMILLA.getCadena ();
    else if (tecla == DOBLES_COMILLAS.getEntero ())
      return DOBLES_COMILLAS.getCadena ();
    else if (tecla == R.getEntero ())
      return R.getCadena ();
    else if (tecla == DERECHA.getEntero ())
      return DERECHA.getCadena ();
    else if (tecla == CIERRA_PARENTESIS.getEntero ())
      return CIERRA_PARENTESIS.getCadena ();
    else if (tecla == CARAC_ROMANOS.getEntero ())
      return CARAC_ROMANOS.getCadena ();
    else if (tecla == S.getEntero ())
      return S.getCadena ();
    else if (tecla == BLOQ_DESLIZAR.getEntero ())
      return BLOQ_DESLIZAR.getCadena ();
    else if (tecla == PUNTO_COMA.getEntero ())
      return PUNTO_COMA.getCadena ();
    else if (tecla == SEPARADOR_OBS.getEntero ())
      return SEPARADOR_OBS.getCadena ();
    else if (tecla == SEPARADOR.getEntero ())
      return SEPARADOR.getCadena ();
    else if (tecla == MAYUSCULAS.getEntero ())
      return MAYUSCULAS.getCadena ();
    else if (tecla == BARRA.getEntero ())
      return BARRA.getCadena ();
    else if (tecla == ESPACIO.getEntero ())
      return ESPACIO.getCadena ();
    else if (tecla == STOP.getEntero ())
      return STOP.getCadena ();
    else if (tecla == SUSTRAE.getEntero ())
      return SUSTRAE.getCadena ();
    else if (tecla == T.getEntero ())
      return T.getCadena ();
    else if (tecla == TABULACION.getEntero ())
      return TABULACION.getCadena ();
    else if (tecla == U.getEntero ())
      return U.getCadena ();
    else if (tecla == INDEFINIDO.getEntero ())
      return INDEFINIDO.getCadena ();
    else if (tecla == GUION_BAJO.getEntero ())
      return GUION_BAJO.getCadena ();
    else if (tecla == DESHACER.getEntero ())
      return DESHACER.getCadena ();
    else if (tecla == ARRIBA.getEntero ())
      return ARRIBA.getCadena ();
    else if (tecla == V.getEntero ())
      return V.getCadena ();
    else if (tecla == W.getEntero ())
      return W.getCadena ();
    else if (tecla == X.getEntero ())
      return X.getCadena ();
    else if (tecla == Y.getEntero ())
      return Y.getCadena ();
    else if (tecla == Z.getEntero ())
      return Z.getCadena ();
    else if (tecla == IZQUIERDA_L.getEntero ())
      return IZQUIERDA_L.getCadena ();
    else if (tecla == DERECHA_L.getEntero ())
      return DERECHA_L.getCadena ();
    else if (tecla == ESTANDAR.getEntero ())
      return ESTANDAR.getCadena ();
    else if (tecla == FLECHA_ABAJO.getEntero ())
      return FLECHA_ABAJO.getCadena ();
    else                 // Si se llega aquí, 'tecla' no corresponde a un 'virtual key code' conocido.
      return "Fallo";
  }
}




Clase Sonido

package ejercicio_5;

import java.io.*;
import java.lang.*;
import javax.sound.sampled.*;

/** Esta clase guarda los efectos sonoros, y proporciona métodos para reproducirlos.

    Si el sonido se carga antes que los hilos, no se les concederá espacio en memoria a todos. */
class Sonido
{
  /** Constante entera con el total de clips de la clase. */
  public static final byte NUMERO_CLIPS = 11;

  /** Constante correspondiente al efecto sonoro de rotación de la pieza. */
  public static final byte ROTACION = 0;
  /** Constante correspondiente al efecto sonoro de completar líneas. */
  public static final byte LINEAS_COMPLETAS = 1;
  /** Constante correspondiente al efecto sonoro de subir nivel. */
  public static final byte SUBE_NIVEL = 2;
  /** Constante correspondiente al efecto sonoro de empezar partida. */
  public static final byte START = 3;
  /** Constante correspondiente al efecto sonoro de game over. */
  public static final byte GAME_OVER = 4;
  /** Constante correspondiente al efecto sonoro de reventar un cuadradillo, y depositar una pieza. */
  public static final byte PETA_CUAD = 5;
  /** Constante correspondiente al efecto sonoro de completar 4 líneas. */
  public static final byte LINEAS_4 = 6;
  /** Constante correspondiente al efecto sonoro de completar 5 líneas. */
  public static final byte LINEAS_5 = 7;
  /** Constante correspondiente al efecto sonoro de completar 6 líneas. */
  public static final byte LINEAS_6 = 8;
  /** Constante correspondiente al efecto sonoro de completar 7 líneas o más. */
  public static final byte LINEAS_7 = 9;
  /** Constante correspondiente al efecto sonoro de puntuación alta. */
  public static final byte HI_SCORE = 10;

  // Variables de clase. Una representa la tabla de 'Clip's donde
  // se guardan todas las músicas y efectos sonoros para el juego; y la cadena contiene la ruta a la
  // carpeta con las diferentes musiquitas.
  private Clip clip [];

  /** Constructor. Define el clip designado como música de fondo durante la partida, recibe la
      ubicación de los archivos de sonido.
      @param nuevoClipFondo byte      : Entero correspondiente al clip que sonará de fondo en la partida.  */
  public Sonido ()
  {
    /** Las diferentes músicas y efectos sonoros tienen un nombre estandarizado: 'clip0.wav', 'clip1.wav',
        'clip2.wav', etc... Por eso, con el siguiente bucle se pueden meter todos los clips en la tabla. */
    clip = new Clip [NUMERO_CLIPS];
    for (byte indice = 0; indice < NUMERO_CLIPS; indice++)
      try
      {
        AudioInputStream flujo = Tetris.getClip ("clip" + String.valueOf (indice) + ".wav");
        AudioFormat formato = flujo.getFormat ();
        DataLine.Info informacion = new DataLine.Info (Clip.class, flujo.getFormat (),
                                        (int) (flujo.getFrameLength () * formato.getFrameSize ()));
        clip [indice] = (Clip) AudioSystem.getLine (informacion);
        clip [indice].open (flujo);
      } catch (IOException ex) {
      } catch (LineUnavailableException ex) {}
  }

  /** Método que hace sonar el efecto sonoro de rotación. */
  public void rotacion ()
  {
    efectoSonoro (ROTACION);
  }

  /** Método que hace sonar el efecto sonoro de completar líneas. */
  public void lineasCompletas ()
  {
    efectoSonoro (LINEAS_COMPLETAS);
  }

  /** Método que hace sonar el efecto sonoro de subir nivel. */
  public void subeNivel ()
  {
    efectoSonoro (SUBE_NIVEL);
  }

  /** Método que hace sonar el efecto sonoro de empezar la partida. */
  public void start ()
  {
    efectoSonoro (START);
  }

  /** Método que hace sonar el efecto sonoro de terminar la partida. */
  public void gameOver ()
  {
    efectoSonoro (GAME_OVER);
  }

  /** Método que hace sonar el efecto sonoro de reventar 4 líneas. */
  public void lineas4 ()
  {
    efectoSonoro (LINEAS_4);
  }

  /** Método que hace sonar el efecto sonoro de reventar 5 líneas. */
  public void lineas5 ()
  {
    efectoSonoro (LINEAS_5);
  }

  /** Método que hace sonar el efecto sonoro de reventar 6 líneas. */
  public void lineas6 ()
  {
    efectoSonoro (LINEAS_6);
  }

  /** Método que hace sonar el efecto sonoro de reventar 7 líneas o más. */
  public void lineas7 ()
  {
    efectoSonoro (LINEAS_7);
  }

  /** Método que hace sonar el efecto sonoro de depositar una pieza o reventar un cuadradillo. */
  public void pum ()
  {
    efectoSonoro (PETA_CUAD);
  }

  /** Método que hace sonar el efecto sonoro de puntuación máxima. */
  public void hiScore ()
  {
    efectoSonoro (HI_SCORE);
  }

  /** Método que hace sonar uno de los clips desde el principio.
      @param efecto byte  : Variable que corresponde a la posición del clip de marras en la tabla. */
  public void efectoSonoro (byte efecto)
  {
    clip [efecto].setFramePosition (0);
    clip [efecto].start ();
  }

  /** Metódo para detener la reproducción de un clip.
      @param efecto byte  : Variable con la posición del clip a detener. */
  public void stopClip (byte efecto)
  {
    if (clip [efecto].isRunning ())
      clip [efecto].stop ();
  }
}

¿Comentarios, sugerencias?: llopsite.at.yahoo.es | © 2005-07 Albert Lobo

Última actualización: 18-Feb-2007

Hosted by www.Geocities.ws

1