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
codice:
<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 getposition.php
codice:
<?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
?>
file scacchi.js
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;
}
Poi non riesco più a continuare, mi manca cioè l'ultimo punto:
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.