Newsgroup: it.comp.lang.javascript
Titolo: Grazie PippoPd !!

Ciao Paolo e grazie !
Una domanda circa l'alert che hai inserito on click nel bottone, qual'è la
sua funzione ?top.game.document.title mi mostra un alert vuoto , immagino
che io vi debba collegare qualcosa.
Hai visto il risultato complessivo di una cosa in javascript fatta in questo
modo ?
Lo sai che esistono programmi commerciali per gestire i test scacchistici
che costano centinaia di bigliettoni ?
Una cosa come questa ( che a livello di contenuti , parlo di partite e
contenuti scacchistici ) è personalizzabile all'infinito, quando sarà messa
gratuitamente a disposizione dei circoli e delle scuole dovrebbe essere una
figata pazzesca !!
Ho già trovato un software ( il WebCompiler) che trasforma tutto in unico
file .exe, così posso mettere un file di help e gestire magari un cd rom che
parta in automatico con un file autorun.inf
L'unica limitazione è che FSO gira solo sotto IE ma comunque mi sta venendo
fuori una roba veramente ganza.
Grazie !
Marco

 fuori una roba veramente ganza.
Ci sarebbe anche la possibilita' di scrivere con NS abilitando i
privilegi o con script firmati o abilitando il codebase principals (cosa
un po' complessa e pericolosa per gli utenti).
Se vuoi fare delle prove:
To enable codebase principals, end users must add the appropriate
preference to their Navigator preference file. To do so, add this line
to the file ( *prefs.js* scoperto dopo vari tentativi):
user_pref("signed.applets.codebase_principal_support", true);
------------------
I codici modificati per funzionare anche con NS sono i seguenti:
-------scrivi riga-----------
var fileRisultati="c:\\fileprova.txt";
function showtotal(){
 risultato=Math.round(total * 100 / totalmax) + " %";
 nome=prompt("Il tuo risultato complessivo: " + risultato+'\nDigita il
tuo nome','');
 if (document.layers) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalFileAccess'
);
  var a = new java.io.FileWriter(fileRisultati,true);
  a.write (nome+';'+total+'\r\n');
  a.close();
 } else {
  fso = new ActiveXObject("Scripting.FileSystemObject");
  (fso.FileExists(fileRisultati))? a = fso.OpenTextFile(fileRisultati,
8, false):a = fso.CreateTextFile(fileRisultati, true);
  a.WriteLine(nome+';'+total);
  a.Close();
 }
}
------------------
-------mostra risultati--------
var fileRisultati="c:\\fileprova.txt";
r=10000;
r1=null;
function ris(){
 if (document.layers) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalFileAccess'
);
  r1 = new java.io.BufferedReader(new
java.io.FileReader(fileRisultati));
 } else {
  fso = new ActiveXObject("Scripting.FileSystemObject");
  if (fso.FileExists(fileRisultati)) {
   r1 =fso.OpenTextFile(fileRisultati,1, false);
   r =  r1.ReadAll();
   r=r.length;
   r1 =fso.OpenTextFile(fileRisultati,1, false);
  }
 }
 if (r1){
  linea=null;
  risu= new Array;
  n=0;
  while (r>2 && (linea=r1.readLine())!=null){
   risu[n]=''+linea.toString();
   n++
   r-=(''+linea.toString()).length+2
  }
  if (document.all)r1.Close();
  risultati= new Array;
  n=0;
  for (i=0; i<risu.length ;i++){
   var indice=risu[i].substr(risu[i].indexOf(';')+1);
   if (indice<100) indice=(indice<10)?'00'+indice:'0'+indice;
   risultati[n]= new
Array(indice,risu[i].substr(risu[i].indexOf(';')+1),risu[i].substr(0,ris
u[i].indexOf(';')));
   n++
  }
/* controllo visualizzazione immediata
for (i=risultati.length-1;i>=0;i--){
 document.write(risultati[i][2]+'   '+risultati[i][1]+'<BR>')
}
*/
  risultati.sort();
aa=window.open('','newWin','toolbar=0,location=0,directories=0,status=0,
menubar=0,scrollbars=0,resizable=0,copyhistory=0,width=200,height=300,sc
reenX=10,screenY=10,top=10,left=10');
   // apre una nuova finestra con una nuova pagina
  aa.document.write('<HTML><HEAD><TITLE>Risultati</TITLE></HEAD><BODY
bgColor="cyan">')// scrivi i tag di apertura sulla nuova pagina
aa.document.write('<TABLE><TR><TD>Giocatore</TD><TD>Risultato</TD></TR>'
)// scrivi i tag di apertura sulla nuova pagina
  for (i=risultati.length-1;i>=0;i--){
aa.document.write('<TR><TD>'+risultati[i][2]+'</TD><TD>'+risultati[i][1]
+'</TD></TR>')
  }
  aa.document.write('</TABLE>'); // scrivi i tag di chiusura
  aa.document.write('</BODY></HTML>'); // scrivi i tag di chiusura
  aa.document.close();    // chiudi la fase di scrittura
 }
}
ris();
---------------------
Saluti, Paolo

 come funziona?
Come funziona ?
Ma è tutto automatico !! Sotto ti metto l'url dove downloadare !!
E' un generatore di codice javascript fatto dal mio amico Uwe Auerswald.
Partendo da files formato PGN ( e qui ti basti sapere che un file formato
PGN è un file per la notazione scacchistica che contiene tutte le
informazioni relative ad una partita Giocatori, data, .....ed è basato , per
ciò che riguarda la trascrizione delle mosse sullo standard FEN ....in
pratica la posizione iniziale di una partita di  scacchi viene descritta in
questo modo :
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
Allora prova un po' ad indovinare ?...
Diciamo che lo standard FEN inizia a descrivere le 64 caselle da quella in
alto a sx ( all'inizio della partita occupata dalla torre nera )
I pezzi ed pedoni neri sono tutti in minuscolo, Quelli bianchi in maiuscolo.
La prima linea in alto all'inizio della partita è composta da : Torre (Rook)
Cavallo( Neufer) Alfiere ( Bishop) e così via, poi trovi il segno / che sta
a significare che ora ci occuperemo della seconda linea di case partendo
sempre dall'alto, la fila di ppp....che vedi altro non sono la fila di
pedoni che conoscerai ( spero ) per averla vista all'inizio di una partita.
I numeri stanno ad indicare il numero di case vuote ...8 significa che nella
terza riga dall'alto non c'è nulla ( 8 vuoti appunto ) così via fino alla
penultima "traversa" dove troveremo i pedoni bianchi...etc...
Questo per la posizione iniziale. poi la partita viene seguita dal punto di
vista "dinamico" partendo appunto dalla posizione iniziale e segnando gli
spostamenti sulla base di un sistema a coordinate ( una cosa simile alla
battaglia navale ).
Ecco un esempio di posizione iniziale diversa da quella di inizio partita
 cioè a dire con i pezzi sparsi per la scacchiera, che viene risolta da uno
dei due giocatori ( descritti nella testata ) nel giro di poche mosse. :
[Event "St. Petersburger Zeitung"]
[Site "?"]
[Date "1904.??.??"]
[Round "?"]
[White "Kubbel, L."]
[Black "Draw"]
[Result "*"]
[SetUp "1"]
[FEN "8/3k3K/8/6p1/5b2/7P/8/8 w "]     // questo è codice FEN e descrive la
posizione iniziale w significa che tocca al bianco muovere
[PlyCount "6"]
[EventDate "1904.??.??"]
1. Kg6 Ke6 2. Kh5 Kf5 3. h4 g4 *  // Il bianco prima ha mosso il suo Re ( K)
in g6 e poi alla mossa n.3 ha avanzato il pedone in h4 ( per descrivere i
pedoni nella parte dinamica delle trascrizioni si omette "p" quindi h4 =
ph4 ).
Uwe ha scritto il programma ....il PgntoJS che trasforma una (o anche
trecento partite)  di scacchi in una pagina htm con javascript test di
soluzione e cose varie , io ....rompendo le balle qua e la     ;))      ho
personalizzato ( ma poco ) mettendo ad esempio le faccine che ridono..ho
pensato che per i piccoli allievi fosse carino.
Lo puoi downloadare all'URL : 
http://www.mailchess.de/pgntojse.html
 Ciao e grazie
Marco

 Ma è tutto automatico !! Sotto ti metto l'url dove downloadare !!
[]
Molto interessante!
Comunque la mia domanda si riferiva all'errore che mi restituiva IE di
violato accesso al frame, come se ci fosse un qualche vincolo
nell'utilizzo off-line.
Saluti, Paolo

 nell'utilizzo off-line.
Ho visto anch'io che on line mi funzia, mentre se lo faccio girare off line
non mi fa vedere subito le figurine dei pezzi sulla scacchiera ma solo dopo
che ho fatto una mossa.
Avevo avuto a suo tempo un problema simile su delle pagine che usavano
diversi Iframe i quali richiamavano più scacchiere al loro interno il
problema fu risolto ( da Uwe ) scrivendo una funzione che dopo aver numerato
le scacchiere da inizializare chiamava proprio uno ad uno gli Iframe da
inizializzare....
function init(){
 iframe1.game.init();
 iframe2.game.init();
 iframe3.game.init();
ma qui di Iframe mica ce ne sono...boh , ma non vorrei che anche qui ci
fosse da dare un'ordine alla sequenza di init delle varie scacchiere !!  se
vai all'indirizzo vedi applicata la funzione sopra, ma ripeto la era per via
degli Iframe, anche se il "sintomo" a video era lo stesso.
http://web.tiscalinet.it/valpochess/elementi/cap1.htm
Non ho provato la diavoleria del NN ma quando l'ho letta ho provato come un
grande senso di amore ......ora voglio risolvere le cose una volta sennò mi
incasino, ma certo mi attira l'idea di rendere NN compatibile la cosa.
Ciao
Marco

 incasino, ma certo mi attira l'idea di rendere NN compatibile la cosa.
Quanto ti cimenterai fammi sapere.
Saluti, Paolo