Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 12 su 12
  1. #11
    Ora funge tutto, grazie mille per l'aiuto

  2. #12
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    9

    Re: [JAVA] Problema array e sostituzione elementi

    Originariamente inviato da myttex
    Salve a tutti!

    Ho un problema con un'array (bidimensionale), dentro la quale vorrei sostituire/aggiungere due elementi.
    L'array si chiama "data" ed è 10x10.
    Ho provato ad operare così:

    codice:
    private void MuoviActionPerformed(java.awt.event.ActionEvent evt) {
    
    for (int i = 0; i < data.length; i++) {
                for (int j = 0; j < data.length; j++) {
                    if (data[i][j].equals("X")) {
                        data[i][j] = "";
                        data[i][j+1] = "X"; // sposto sopra
                    } else if (data[i][j].equals("O")) {
                        data[i][j] = "";
                        data[x][y] = "O"; // x e y sono numeri random da 1 a 10
                    }
                }
            }
    
        }
    
    }
    E' collegata ad una jTable e dovrebbe aggiornarsi dopo la pressione di quel tasto, comunque, a parte questo,
    come potete vedere, metto i due cicli in modo da scansionare la matrice e che, quando arriva all'elemento "X" lo sposti di una casella sopra (e quindi l'ho tradotto con il "cancella dov'era e riscrivi la nuova posizione").
    Mentre, se il ciclo trova "O" allora lo sposta in modo casuale.

    Appena premo il bottone mi da questo errore:

    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 10
    Ringrazio tutti anticipatamente.
    Saluti.
    Scusa mi annoio a leggere tutta la vostra discussione XD, non so se l'hai già capito come si fà comunque ti dico che un array bidimensionale non è altro che un array di array, cioè ogni elemento di un array bidimensionale è un array a se, e una sequenza di array all'interno di un altro array fanno un array bidimensionale.

    Perciò, data.length ti dà il numero di array che l'array contiene, cioè il numero di righe dell'array bidimensionale, mentre per sapere il numero di colonne, cioè il numero di elementi di ogni array contenuto nell'array bidimensionale, è questo: data[array].length

    Perciò per scansionare tutti gli elementi di un array bidimensionale devi fare così:

    codice:
    // Per ogni riga della matrice
    for (int riga = 0; riga < data.length; riga++)
    {
       // Per ogni colonna della riga
       for (int colonna = 0; colonna < data[0].length; colonna++)
       {
          // Fai quello che vuoi
       }
    }
    Se puoi aiuta me sugli applet: http://forum.html.it/forum/showthrea...readid=1493243

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.