Associando List de nivel ao Rms

0 respostas
STRAUSS69

Preciso de ajuda para vincular os itens de uma lista a um recordstore e gostaria que alguem me ajudasse nisso.
Bem começo mostrando meu codigo do rms e depois a da lista respectivamente.

public class Record {
    
      byte[] data;
      public int marcador;
      public RecordStore rs=null;
Record(){





}
private void open(){
               try {
            rs = RecordStore.openRecordStore("nivel", true);
        } catch (RecordStoreException ex) {
            ex.printStackTrace();


}
}
private void close(){
        try {
            rs.closeRecordStore();
        } catch (RecordStoreNotOpenException ex) {
            ex.printStackTrace();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }

}
public void SaveNivel1(){
       open();
        try {
            int indice=1;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            DataOutputStream dos = new DataOutputStream(baos);
            dos.writeInt(indice);
            dos.flush();
             data = baos.toByteArray();

            
            if(rs.getNumRecords()==0){
            rs.addRecord(data, 0, data.length);
            }
            else
            {
            rs.setRecord(1, data,0, data.length);


            }
            
           

            
            marcador=rs.getRecord(1,data,0);

            baos.close();
            dos.close();
        } catch (RecordStoreNotOpenException ex) {
            ex.printStackTrace();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }  catch (IOException ex) {
            ex.printStackTrace();
        }
close();
}
public void SaveNivel2(){
    open();
 try {
     int indice2=2;
    
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            DataOutputStream dos = new DataOutputStream(baos);
            dos.writeInt(indice2);
            dos.flush();
             data = baos.toByteArray();

            if(rs.getNumRecords()==0){
            rs.addRecord(data, 0, data.length);
            }
            else
            {
            rs.setRecord(1, data,0, data.length);


            }
            marcador=rs.getRecord(1,data,0);
            baos.close();
            dos.close();
        } catch (RecordStoreNotOpenException ex) {
            ex.printStackTrace();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }  catch (IOException ex) {
            ex.printStackTrace();
        }

close();
}
public void SaveNivel3(){
 try {
     int indice3=3;
     
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            DataOutputStream dos = new DataOutputStream(baos);
            dos.writeInt(indice3);
            dos.flush();
            data=baos.toByteArray();

            if(rs.getNumRecords()==0){
            rs.addRecord(data, 0, data.length);
            }
            else
            {
            rs.setRecord(1, data,0, data.length);


            }
            marcador=rs.getRecord(1,data,0);
            baos.close();
            dos.close();
        } catch (RecordStoreNotOpenException ex) {
            ex.printStackTrace();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }  catch (IOException ex) {
            ex.printStackTrace();
        }

close();
}

Agora a da lista;

public nivel(){
super("",List.EXCLUSIVE);
    this.volta=new Command("Voltar",Command.BACK,0);
       this.seta=new Command("Ok",Command.OK,1);
append("Facil",null);
append("Medio",null);
append("Dificil",null);
   addCommand(volta);
   addCommand(seta);
    this.setCommandListener(this);
    }
    public void commandAction(Command c, Displayable d) {
        Record record=new Record();
        if(c==seta){
      
switch(this.getSelectedIndex()){

    case 0:
          record.SaveNivel1();
        JogoDaVelha.app.msg();
     
         
          break;
    case 1:
          JogoDaVelha.app.msg();
          record.SaveNivel2();
          break;
    case 2:
         JogoDaVelha.app.msg();
         record.SaveNivel3();
          break;


}
Bem a logica e a seguinte; criei 3 metodos na classe de records para salvar tres variaveis inteiras no mesmo recordeStore porém sobre o mesmo id de certa forma que o proprio codigo fara a atualização ao inves de criar tres registros.Cada metodo é chamado apos a escolha do usuario a um dos itens da lista postada acima.Cada metodo de save possui uma variavel chmada de "marcador" que pega o que tem salvo sempre no id 1 deste recorde.Fiza tudo isso para poder chegar no alvo do meu problema que é bem aqui...
public void valorizaCaixa( int col, int lin)
   {
Record recorde=new Record();
      linhaSelec = colunaSelec = 0;

        for( int i=0; i<3; i++ ){
            for( int j=0; j<3; j++ ){
                if( ( linhaSelec == lin ) && ( colunaSelec ==col ) ){
                    if ( caixa[i][j] == 0 ){
                        caixa[i][j] = 1;
                        verificaGanhador();
                        repaint();

                       if((vencedor!='x')&&(jogada<=5)&&(recorde.marcador==1)){

                         nivelFacil();
                          repaint();

                      }
                       if((vencedor!='x')&&(jogada<=5)&&(recorde.marcador==2)){

                          medio();
                           repaint();

                       }
                          if((vencedor!='x')&&(jogada<=5)&&(recorde.marcador==3)){

                              dificil();
                            repaint();

                       }
               
                        break;
                    }
                }
                else{
                    colunaSelec = colunaSelec + 83;
                }
            }

            linhaSelec  = linhaSelec + 100;
            colunaSelec = 0;
        }


     }
Como podem ver comparo "marcador " com 1 ,2 ou 3 e ae sim os metodos facil medio ou dificil são chamados.Bem, quando faço a coimparação com os valores acima, os metodos de dificulades n são chamados porem quando comparo o "marcador" com "0 =zero" dá certo.Qual é o problema? Será que n esta salvando os valors que eu especifiquei?Preciso de mais alguma coisa ao longo deste código para obter as comparações da maneira que eu quero? Aguardo sugestões, e desde já agradeço paciência de todos que se disposerem a me ajudar.Grato!
Criado 23 de dezembro de 2009
Respostas 0
Participantes 1