bizzu
04-06-2004, 22:00
Ho un problemino con una classe che ho creato...
La classe deve rappresentare un labirinto (la uso in un'applet); ho optato per un vettore bidimensionale di BitSet. Ogni casella della matrice (cioè ogni cella del labirinto) è un BitSet, che contiene i bit rappresentanti i muri, ecc...
L'ho dichiarata così:
private BitSet[][] maze;
e poi nel costruttore:
maze = new BitSet[dimensione][dimensione];
dove dimensione è un intero con la dimensione del labirinto.
All'atto dell'inizializzazione (sempre nel costruttore), devo mettere i bit da 0 a 3 true, e quelli da 4 a 11 false. Ho fatto così:
for (i = 0; i < dimensione; i++) {
for (k = 0; k < dimensione; k++) {
maze[i][k].set(0, 4);
maze[i][k].clear(4, 12);
}
}
ma qui sta l'inghippo! Quando arriva dentro al secondo ciclo for, si blocca tutto (non da errori)!
Dove sbaglio? :confused: :muro:
La classe deve rappresentare un labirinto (la uso in un'applet); ho optato per un vettore bidimensionale di BitSet. Ogni casella della matrice (cioè ogni cella del labirinto) è un BitSet, che contiene i bit rappresentanti i muri, ecc...
L'ho dichiarata così:
private BitSet[][] maze;
e poi nel costruttore:
maze = new BitSet[dimensione][dimensione];
dove dimensione è un intero con la dimensione del labirinto.
All'atto dell'inizializzazione (sempre nel costruttore), devo mettere i bit da 0 a 3 true, e quelli da 4 a 11 false. Ho fatto così:
for (i = 0; i < dimensione; i++) {
for (k = 0; k < dimensione; k++) {
maze[i][k].set(0, 4);
maze[i][k].clear(4, 12);
}
}
ma qui sta l'inghippo! Quando arriva dentro al secondo ciclo for, si blocca tutto (non da errori)!
Dove sbaglio? :confused: :muro: