titanum
22-09-2011, 12:34
Buongiorno a tutti, ho un problema con un oggetto javascript. Sto realizzando un programma di scacchi, e avevo creato questo costruttore per memorizzare i pezzi:
function pezzo(n,c)
{
this.nome=n;
this.casa=c;
this.flag=0;
}
ho poi due array di pezzi, uno per il bianco e uno per il nero, che inizializzo così:
//inizializzazione dei pezzi
bianco=new Array(); //array dei pezzi bianchi
nero=new Array(); //array dei pezzi neri
nero[0]=new pezzo("pedone",0);
nero[1]=new pezzo("pedone",1);
nero[2]=new pezzo("pedone",2);
//inserisce i pedoni nell'array nero:
for (i=3;i<30;i++)
{
nero[nero.length]=new pezzo("pedone",i+2);
}
//inserisce i pedoni nei rispettivi array:
for (i=0;i<8;i++)
{
bianco[i]=new pezzo("pedone",i+48);
}
nero[nero.length]=new pezzo("pedone",35);
nero[nero.length]=new pezzo("pedone",36);
//inserisce i pezzi nei rispettivi array: i re sono inseriti alla fine dei rispettivi array per facilitare la loro ircerca
bianco[8]=new pezzo("torre",56);
bianco[9]=new pezzo("cavallo",57);
bianco[10]=new pezzo("alfiere",58);
Il problema è che durante il gioco ho la necessità di duplicare questi due array, e per questo ho creato questa funzione:
function copia2(a)
{
var i=0;
var newarr=new Array();
var l=a.length;
for(i=0;i<l;i++)
{
newarr[i]=new pezzo(a[0].nome,a[0].casa);
}
return newarr;
}
Il problema è che lo script si blocca, nella console degli errori compare il messaggio
pezzo is not a constructor
Sapete dirmi qual'è il problema? Grazie!
function pezzo(n,c)
{
this.nome=n;
this.casa=c;
this.flag=0;
}
ho poi due array di pezzi, uno per il bianco e uno per il nero, che inizializzo così:
//inizializzazione dei pezzi
bianco=new Array(); //array dei pezzi bianchi
nero=new Array(); //array dei pezzi neri
nero[0]=new pezzo("pedone",0);
nero[1]=new pezzo("pedone",1);
nero[2]=new pezzo("pedone",2);
//inserisce i pedoni nell'array nero:
for (i=3;i<30;i++)
{
nero[nero.length]=new pezzo("pedone",i+2);
}
//inserisce i pedoni nei rispettivi array:
for (i=0;i<8;i++)
{
bianco[i]=new pezzo("pedone",i+48);
}
nero[nero.length]=new pezzo("pedone",35);
nero[nero.length]=new pezzo("pedone",36);
//inserisce i pezzi nei rispettivi array: i re sono inseriti alla fine dei rispettivi array per facilitare la loro ircerca
bianco[8]=new pezzo("torre",56);
bianco[9]=new pezzo("cavallo",57);
bianco[10]=new pezzo("alfiere",58);
Il problema è che durante il gioco ho la necessità di duplicare questi due array, e per questo ho creato questa funzione:
function copia2(a)
{
var i=0;
var newarr=new Array();
var l=a.length;
for(i=0;i<l;i++)
{
newarr[i]=new pezzo(a[0].nome,a[0].casa);
}
return newarr;
}
Il problema è che lo script si blocca, nella console degli errori compare il messaggio
pezzo is not a constructor
Sapete dirmi qual'è il problema? Grazie!