Ciao,
in questo codice:
solution=new Array(0,4,4,2,3);
temp = [0,0,0,0,0];
for (i=0;i<5;i++) {
temp[solution[i]]++;
}
che cos'è temp?
e cosa fa la riga temp[solution[i]]++?
alla fine del ciclo temp risulta 10112.
Grazie.
Ciao,
in questo codice:
solution=new Array(0,4,4,2,3);
temp = [0,0,0,0,0];
for (i=0;i<5;i++) {
temp[solution[i]]++;
}
che cos'è temp?
e cosa fa la riga temp[solution[i]]++?
alla fine del ciclo temp risulta 10112.
Grazie.
Il ciclo aumenta i valori negli indici dell'array temp nell'ordine indicato nell'array solution.
solution=new Array(0,4,4,2,3);
temp = [0,0,0,0,0];
quindi sia temp che solution sono array, ma come mai quella strana sintassi per temp?
E' semplicemente un modo più veloce per creare un array senza dichiararlo. Solo che chi ha scritto il codice non è molto coerente perché scrive il codice come gli pare anziché adottare un proprio stile unico e sempre uguale.
esatto , per provare a spiegare conOriginariamente inviato da thunderlips
Il ciclo aumenta i valori negli indici dell'array temp nell'ordine indicato nell'array solution.
solution=new Array(0,1,2,3,4);
temp e i suoi indici avrebbero avuto tutti valore 1, mentre cosi' il quarto indice viene incrementato 2 volte, gli altri 1 e l' indice numero 1, valore non presente in solution, non viene mai incrementato.
Dove viene applicata questa sintassi ?
Mi interessa , grazie
Questo codice è inserito in un programmino per ricreare il gioco Mastermind. Il programma sceglie 5 colori e il giocatore deve indovinarli nell'esatta sequenza. I colori nella posizione esatta vengono indicati con un segno bianco mentre quelli indovinati ma nella posizione sbagliata con un segno nero.
L' array solution contiene la sequenza di colori generata a caso.
// determine how many of each color there are
temp = [0,0,0,0,0];
for (i=0;i<5;i++) {
temp[solution[i]]++;
}
// see how many are correct
for (i=0;i<5;i++) {
thisColor = _root["rock"+row+"-"+i]._currentFrame - 2;
if (thisColor == solution[i]) {
numRightSpot++;
temp[thisColor]--;
}
}
// see how many are correct color, but wrong spot
for (i=0;i<5;i++) {
thisColor = _root["rock"+row+"-"+i]._currentFrame - 2;
if (thisColor != solution[i]) {
if (temp[thisColor] > 0) {
numRightColor++;
temp[thisColor]--;
}
}
}
// create white rocks
level = row*10+5;
x = rightColLoc;
for(i=0;i<numRightSpot;i++) {
attachMovie("rock","white rock"+level,level);
clip = _root["white rock"+level];
clip.gotoAndStop("white");
clip._x = x;
clip._y = topRowLoc + row*vertSpace;
level++
x+=horizSpace;
}
// create black rocks
for(i=0;i<numRightColor;i++) {
attachMovie("rock","black rock"+level,level);
clip = _root["black rock"+level];
clip.gotoAndStop("black");
clip._x = x;
clip._y = topRowLoc + row*vertSpace;
level++
x+=horizSpace;
}