Ciao a tutti.
Sto scrivendo uno script che riproduca il gioco dell'impiccato. In pratica, una volta che l'utente scrive la parola da indovinare e la invia, l'altro utente deve scegliere una lettera per volta per vedere se è presente e quante volte nella parola da indovinare.
Il codice che ho sviluppato per adesso è questo:
In pratica creo un oggetto, registro la parola inviata e la splitto per poi sostituire le lettere con delle x.codice:<script> function Gioco(parola){ this.scriviparola=function(parola){ tabellone.value=""; luigi=parola; splittata=luigi.split(""); for(i=0;i<splittata.length;i++){ tabellone.value +="x"; } } this.indovina=function(lettera){ if(lettera==""){ alert("indica una lettera"); } if(tabellone.value==" "){ alert("scrivi una parola"); } else { tabellone.value=""; letteraind=lettera; for (i=0;i<splittata.length;i++){ if (splittata[i]==letteraind){ tabellone.value+=letteraind; } else{ tabellone.value+="x"; } } } } } miavar=new Gioco(); </script> <input type="text" name="parola" size=20> <input type="button" name="invia" value="registra parola da indovinare" onclick="miavar.scriviparola(parola.value);"> Inserisci una lettera: <input type="text" name="letteraind" size=20> <input type="button" name="tenta" value="tenta" onClick=miavar.indovina(letteraind.value);> <textarea name="tabellone" cols="30" rows="30"> </textarea>
Fin qui tutto ok. La funzione "indovina" invece prende la lettera scelta dall'utente, la confronta con l'array creato dalle lettere splittate e, nel caso in cui la lettera sia presente, la sostituisce alle x nella posizione giusta (grazie ad un ciclio for). Anche qui tutto ok.
Adesso però mi fermo di fronte ad un problema ( ), infatti se scelgo una nuova lettera presente nell'array, la funzione CANCELLA LE LETTERE INDOVINATE PRIMA e le sostituisce con le x - infatti sono costretto a risettare l'attributo value della textarea a "", altrimenti le nuove lettere si aggiungono di seguito alle precedenti creando una parola lunga il doppio, poi il triplo e così via...
La domanda è: come faccio a FISSARE le lettere indovinate e la loro posizione SOSTITUENDO poi alle x rimaste quelle indovinate in seguito???