PDA

View Full Version : [Java] problema ciclo for


ricky_86
09-09-2008, 14:31
ciao a tutti
ho un problema io ho questa parte di codice in java


if (tentativo[riga_att][0].equals(RunMe.soluzione[0])){
suggerimenti[riga_att][cont_sug].setBackground(Color.black);
cont_sug = cont_sug + 1;
vincita1 = true;
contr1 = false;
contr1b = false;
}
if (tentativo[riga_att][1].equals(RunMe.soluzione[1])){
suggerimenti[riga_att][cont_sug].setBackground(Color.black);
cont_sug = cont_sug + 1;
vincita2 = true;
contr2 = false;
contr2b = false;
}....


e volevo renderlo + semplice con un ciclo for.
Ho provato a fare così:

for(int j=0;j<4;j++){
if (tentativo[riga_att][j].equals(RunMe.soluzione[j])){
suggerimenti[riga_att][cont_sug].setBackground(Color.black);
cont_sug = cont_sug + 1;
vincita1 = true;
contr1 = false;
contr1b = false;
}

però le variabili vincita1 contr1 e contrb1 dovrebbero diventare vincita2 etc con l'aumentare di j.
Come si fa ???

ally
09-09-2008, 15:03
semplicemente crea anche per queste un array di boolean

ciao Andrea

ricky_86
09-09-2008, 18:29
ok ho fatto così
boolean [] vincita = new boolean[4];
boolean [] contr = new boolean[4];
boolean []contrb = new boolean[4];

for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {

if (tentativo[riga_att][i].equals(RunMe.soluzione[j]) && contr[j] && contrb[i]){
suggerimenti[riga_att][cont_sug].setBackground(Color.white);
cont_sug = cont_sug + 1;
contr[j] = false;
contrb[i] = false;
}}}

ma adesso ho 2 problemi:
1)
prima avevo così:

if (tentativo[riga_att][0].equals(RunMe.soluzione[1]) && contr2 && contr1b){
suggerimenti[riga_att][cont_sug].setBackground(Color.white);
cont_sug = cont_sug + 1;
contr2 = false;
contr1b = false;
}
else if (tentativo[riga_att][0].equals(RunMe.soluzione[2]) && contr3 && contr1b){
suggerimenti[riga_att][cont_sug].setBackground(Color.white);
cont_sug = cont_sug + 1;
contr3 = false;
contr1b = false;
}
else if (tentativo[riga_att][0].equals(RunMe.soluzione[3]) && contr4 && contr1b){
suggerimenti[riga_att][cont_sug].setBackground(Color.white);
cont_sug = cont_sug + 1;
contr4 = false;
contr1b = false;
}

//SECONDA COLONNA
if (tentativo[riga_att][1].equals(RunMe.soluzione[0]) && contr1 && contr2b){
suggerimenti[riga_att][cont_sug].setBackground(Color.white);
cont_sug = cont_sug + 1;
contr1 = false;
contr2b = false;
}
else if (tentativo[riga_att][1].equals(RunMe.soluzione[2]) && contr3 && contr2b){
suggerimenti[riga_att][cont_sug].setBackground(Color.white);
cont_sug = cont_sug + 1;
contr3 = false;
contr2b = false;
}
else if (tentativo[riga_att][1].equals(RunMe.soluzione[3]) && contr4 && contr2b){
suggerimenti[riga_att][cont_sug].setBackground(Color.white);
cont_sug = cont_sug + 1;
contr4 = false;
contr2b = false;
}....

mettere
if (tentativo[riga_att][i].equals(RunMe.soluzione[j]) && contr[j] && contrb[i])
è sbagliato.
Come devo impostare i e j con contr[j] && contrb[i])????


2)prima avevo

if (vincita1 && vincita2 && vincita3 && vincita4) {

adesso come la devo impostare ??

grazie

banryu79
10-09-2008, 08:57
Quando posti del codice sarebbe meglio se usassi il tag [CODE].
In questo modo non si perde l'identazione.

cionci
10-09-2008, 11:55
Attenzione ai titoli ;) La prossima volta: http://www.hwupgrade.it/forum/showthread.php?t=1649196