Ciao ragazzi, ho un problema e spero mi possiae aiutare.
Qui il testo: Si costruisca in javascript una scacchiera 10x10, con colori di background BIANCO e NERO
alternati, con due pedine inizialmente posizionate nelle caselle (0,9) e (9,0) ed individuate da due
colori di background, ROSSO e BLU. Una volta costruita la scacchiera, bisognerà evidenziare a
schermo, con un timeout di 2 secondi, la sequenza di mosse presente in un file di testo, con il
seguente formato:
x1,y1
x2,y2
...
xN,yN
Le mosse (alternativamente pedina ROSSA e pedina BLU), dovranno essere ottenute dal server,
attraverso una chiamata AJAX così fatta:
getPosition.php?
Il file di testo risiede sul server e può essere aggiornato dinamicamente da un form, presente nella
stessa pagina della scacchiera, in cui inserire le mosse e che contiene quattro campi, due per il
ROSSO e due per il BLU.
Lo script javascript valida le mosse, infatti le pedine possono muovere solo sulle caselle
BIANCHE. Se una mossa non è corretta, viene visualizzato un alert box e la mossa ignorata; se
invece non sono disponibili nuove mosse, semplicemente aspetta lʼinserimento di una nuova mossa
da parte dellʼutente. Se una pedina arriva sulla casella occupata dall’altra pedina, questa viene
mangiata e il gioco si interrompe, visualizzando a schermo un alert box con il colore del vincitore.
Ecco il mio codice
file: index.html
file getposition.phpcodice:<HTML> <HEAD> <SCRIPT type="text/javascript" src="scacchi.js"> </SCRIPT> </HEAD> <BODY> <SCRIPT> scacchiera();//costruisco la scacchiera gioca();//inizio a giocare </SCRIPT> <INPUT type="text" id="txt"/>mossarossaX</br> <INPUT type="text" id="txt"/>mossarossaY</br> <INPUT type="text" id="txt"/>mossabluX</br> <INPUT type="text" id="txt"/>mossabluY</br> <INPUT type="BUTTON" value="INVIA" onclick="newMove()"/> </BODY> </HTML>
file scacchi.jscodice:<?php $file=file('mosse.txt'); //la richiesta $mossa=$_REQUEST['moveNumber']; //controllo se la mossa esiste if($mossa>=sizeof($file)||$mossa<0) echo -1; //non esiste else echo trim($file[$mossa]); //ritorno il valore corrispondente nel file ?>
Poi non riesco più a continuare, mi manca cioè l'ultimo punto:codice:var oldColorG; //serve per ripristinare il colore della prima pedina selezionata var oldColorV; //serve per ripristinare il colore della seconda pedina selezionata var oldMoveG; //la vecchia posizione della prima pedina var oldMoveV; //la vecchia posizione della seconda pedina var xhr=getXMLHttpRequest(); //l'oggetto XMLHttpRequest per comunicare con il server //mi costruisco la mia scacchiera function scacchiera() { document.write('<table cellpadding=10 cellspacing=2 border=3px'); for(i=0;i<10;i++) { document.write('<tr>'); //creo le righe for(j=0;j<10;j++) { ((i+j)%2 !=0) ? colore='white' : colore='black'; //creo il colore di background bianco e nero alternati document.write('<td id='+i+','+j+' bgcolor='+colore+' width=50 height=50> </td>'); } //con <td> mi creo la cella document.write('</tr>'); } document.write('</table>'); document.getElementById("0,9").setAttribute('bgcolor','yellow');//la prima pedina document.getElementById("9,0").setAttribute('bgcolor','green');//seconda pedina oldColor1='black'; oldColor2='white'; oldMove1="0,9"; oldMove2="9,0"; } function getXMLHttpRequest() { if(XMLHttpRequest) return new XMLHttpRequest(); else { try { //eccezione per Internet Explorer 6.0 o minori return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} } } return false; }
Lo script javascript valida le mosse, infatti le pedine possono muovere solo sulle caselle
BIANCHE. Se una mossa non è corretta, viene visualizzato un alert box e la mossa ignorata; se
invece non sono disponibili nuove mosse, semplicemente aspetta lʼinserimento di una nuova mossa
da parte dellʼutente. Se una pedina arriva sulla casella occupata dall’altra pedina, questa viene
mangiata e il gioco si interrompe, visualizzando a schermo un alert box con il colore del vincitore.

Rispondi quotando