juego del ahorcado para J2ME

codigo para el juego del AHORCADO, aun con algunos errores pero ahia eSTa funcionando, LO HACE CON CON PALABRAS DE 6 LETRAS.

/*
 * objetivo: recrear el juego del ahorcado
 * usando palabras de 6 letras
 * dando al jugador la oportunidad de 3 errores
 */

package hello;

import java.io.IOException;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
 * @author MEZTOR
 */

public class elAhorcado extends MIDlet implements CommandListener {

    Display display;
    Form formularioJuego;
    Command ver, jugar, salir;
    Alert buena, mala, perdiste, ganaste;
    String[] palabras;
    StringItem stringItem;
    TextField text1, text2, text3, text4, text5, text6, textPoner, textIntentos;
    Form bienvenida;
    Random rdm;
    String eleccion;
    int puntos = 0, contador = 3;
    boolean acierto;
    int apuntador = 0;

    public elAhorcado() {

        display = Display.getDisplay(this);
        formularioJuego = new Form("juego");
        salir = new Command("Salir", Command.EXIT, 1);
        formularioJuego.addCommand(salir);
        jugar = new Command("Jugar", Command.OK, 0);
        formularioJuego.addCommand(jugar);
        ver = new Command("ver", Command.OK, 0);
        formularioJuego.addCommand(ver);
        palabras = new String[10];
        palabras[0] = "ayudas";
        palabras[1] = "cristi";
        palabras[2] = "manuel";
        palabras[3] = "juanes";
        palabras[4] = "pineda";
        palabras[5] = "chavez";
        palabras[6] = "flores";
        palabras[7] = "guarum";
        palabras[8] = "muchos";
        palabras[9] = "bonita";
        stringItem = new StringItem("", "");
        stringItem.setText("palabra");
        formularioJuego.append(stringItem);
        text1 = new TextField("", "", 1, TextField.ANY);
        formularioJuego.append(text1);
        text2 = new TextField("", "", 1, TextField.ANY);
        formularioJuego.append(text2);
        text3 = new TextField("", "", 1, TextField.ANY);
        formularioJuego.append(text3);
        text4 = new TextField("", "", 1, TextField.ANY);
        formularioJuego.append(text4);
        text5 = new TextField("", "", 1, TextField.ANY);
        formularioJuego.append(text5);
        text6 = new TextField("", "", 1, TextField.ANY);
        formularioJuego.append(text6);
        textPoner = new TextField("Letra", "", 1, TextField.ANY);
        formularioJuego.append(textPoner);
        textIntentos = new TextField("Intentos", "", 3, TextField.ANY);
        formularioJuego.append(textIntentos);
        formularioJuego.setCommandListener(this);
        bienvenida = new Form("bienvenido");
        bienvenida.addCommand(salir);
        bienvenida.addCommand(jugar);
        bienvenida.setCommandListener(this);

    }

    public void startApp() {
        display.setCurrent(bienvenida);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        if (c == salir) {
            destroyApp(false);
            notifyDestroyed();
        }
        if (c == jugar) {

            rdm = new Random();//crea un numero aleatorio
            eleccion = palabras[rdm.nextInt(10)];//en la variable eleccion guarda una palabra elegida al asar del arreglo palabras
            display.setCurrent(formularioJuego);//muestra el formulario de juego
            text1.setString("");//inicializa todos los textFiel en comillas vacias para evitar que queden restos de otros juegos
            text2.setString("");
            text3.setString("");
            text4.setString("");
            text5.setString("");
            text6.setString("");
            textIntentos.setString("");
            textPoner.setString("");
            formularioJuego.addCommand(ver);//agrega de vuevo el comando ver
            acierto = false;//lo inicia en falso
            puntos = 0;//guarda los puntos acumulados, y como inicia el juego de nuevo el jugador no lleva ningun punto
            contador = 3;//con el contador le damos 3 oportunidades, por eso lo empezamos en 3
            //formularioJuego.remuerta);
           if(apuntador!=0){
               formularioJuego.delete(apuntador);
           }
            //lo usamos para borrar imagenes que hallan quedado en el formulario
            //formularioJuego.delete(apuntador1);
            apuntador=0;
        }
        if (c == ver) {
            acierto = false;

            for (int i = 0; i < 6; i++) {
                //con este ciclo recorremos toda la palbra letra por letra

                if ((eleccion.substring(i, i + 1)).equals(textPoner.getString())) {
                    //en caso de que alguna letra sea igual a lo el jugador puso
                    //hacemos lo siguiente
                    acierto = true;
                    puntos = puntos + 1;
                    buena = new Alert("acertaste una letra");
                    display.setCurrent(buena, formularioJuego);
                    // System.out.println("acierto="+acierto);
                    // System.out.println("puntos"+puntos);

                    switch (i) {
                        //con el case buscamos en que posicion acertada
                        //la letra  y asi mismo la ponemos en el campo de texto que
                        //le corresponde
                        case 0:
                            text1.setString(textPoner.getString());
                            break;
                        case 1:
                            text2.setString(textPoner.getString());
                            break;
                        case 2:
                            text3.setString(textPoner.getString());
                            break;
                        case 3:
                            text4.setString(textPoner.getString());
                            break;
                        case 4:
                            text5.setString(textPoner.getString());
                            break;
                        case 5:
                            text6.setString(textPoner.getString());
                            break;
                    }
                }

            }
            if (puntos >= 6) {
                //si lon pustos son = o mayores a 6
                //le mostramos al jugador que gano asi como una imagen
                try {
                    ganaste = new Alert("Ganaste");
                    Image salvado = Image.createImage("salvado.png");
                    if (apuntador != 0) {
                        //usamos esta condicional para saber si el apuntador apuntaba
                        //a alguna imagen, si la tenia la borramos
                        formularioJuego.delete(apuntador);
                    }
                    //ponemos al apuntador y agregamos la imagen
                    //estas lineas se repiten mas adelante
                    apuntador = formularioJuego.append(salvado);
                    display.setCurrent(ganaste);
                } //else
                catch (IOException ex) {
                    //si ay algun error lo imprimimos
                    System.out.println(ex);
                }
            }//else
            if (acierto == false) {
                //en caso que la letra puesta por el jugador
                //no sea igual a ninguna letra de la palabra
                //se lo hacemos saber al jugador  y disminuimos en uno
                //el numero de oportunidades que le quedan
                mala = new Alert("esa letra no esta");
                display.setCurrent(mala, formularioJuego);
                contador = contador - 1;
            }
            //para que el jugador sepa que tantas oprtunidades le quedan
            //en el textIntentos le ponemos las oportunidades que le quedan
            String cadena = String.valueOf(contador);
            textIntentos.setString(cadena);

            switch (contador) {

                case 2:
                    //si el contador es igual a 2 significa que equivoco una vez
                    try {
                        //le ponemos una imagen pa que se espante
                        Image paso1 = Image.createImage("paso1.png");
                        //formularioJuego.delete(apuntador);
                        if (apuntador != 0) {
                          formularioJuego.delete(apuntador);
                        }
                        apuntador = formularioJuego.append(paso1);
                    } catch (IOException e) {
                        System.out.println(e);
                    }
                    break;
                case 1:
                    try {//si ya se eqivoco dos veces lo colgamos
                        Image paso2 = Image.createImage("paso2.png");
                        formularioJuego.delete(apuntador);
                        apuntador = formularioJuego.append(paso2);
                    } catch (IOException e) {
                        System.out.println(e);
                    }
                    break;

            }

            if (contador <= 0) {
                //si el contador llego a cero sifnifica que ya no le quedan mas
                //oportunidades y por lo tanto perdio
                perdiste = new Alert("perdiste");
                try {
                    Image muerta = Image.createImage("ahorcado.png");
                    if (apuntador != 0) {
                        formularioJuego.delete(apuntador);
                    }
                    apuntador = formularioJuego.append(muerta);
                } catch (IOException e) {
                    System.out.println(e);
                }
                for (int j = 0; j < eleccion.length(); j++) {
                    //como no se supo la palabrase
                    //ponemos letra por letra en cada uno de los campos
                    //asta formar la palabra
                    String letra = eleccion.substring(j, j + 1);
                    switch (j) {
                        case 0:
                            text1.setString(letra);
                            break;
                        case 1:
                            text2.setString(letra);
                            break;
                        case 2:
                            text3.setString(letra);
                            break;
                        case 3:
                            text4.setString(letra);
                            break;
                        case 4:
                            text5.setString(letra);
                            break;
                        case 5:
                            text6.setString(letra);
                            break;
                    }

                }

                formularioJuego.removeCommand(ver);
                //como perdio se acabo esa sesion
                //ya no deve de ver nada por eso le quitamos el ver

                //formularioJuego.addCommand(jugar);
                display.setCurrent(perdiste, formularioJuego);
            }
            //usamos las impresiones en consola para ver que es lo que esta haciendo
            System.out.println("palabra=" + eleccion);
            System.out.println("acierto" + acierto);
            System.out.println("puntos=" + puntos);
        }
    }
}