Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Gioco sodoku problemi compatibilità con internet explorer

    Intanto ciao a tutti perchè sono nuovo del forum
    sto programmando in JS il gioco Sudoku.. per ora una versione da stampare e compilare su carta e poi controllare se è giusto.... solo che questo codice che ho scritto non funziona su internet explorer 6 ma solo su mozilla... su internet explorer mi vengono una serie di Undefined qualche idea?
    P.S. Sono alle prime armi è il mio primo programma in Javascript un po più "serio" finora ho sempre fatto gli esempi del libro...
    P.P.S Scusate se posto tutto il codice qui ma nn posso allegare file .html......

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <style>
    .azzurro {background: #DEEFFF}
    .giallo {background: Yellow}
    .verde {background: green}
    .marrone {background: brown}
    .grigio {background: grey}
    .rosso {background: red}
    .blu {background: bleue}
    .viola {background: purple}
    .nero {background: black}
    </style>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Sudoku Davide Granata</title>
    <style type="text/css">
    <!--
    .Stile1 {
    font-size: 36px;
    font-weight: bold;
    }
    .Stile2 {font-size: 36px; font-weight: bold; color: #FF0000; }
    -->
    </style>


    </head>

    <body>

    <p align="center" class="Stile2">Sudoku </p>
    <p align="center" class="Stile1"> by Davide Granata </p>
    <script language="javascript">




    //Numero casuale
    function random(limits) {
    today = new Date();
    num = today.getTime();
    num = Math.round(Math.abs(Math.sin (num)*1000000)) % limits;
    return num;
    }



    //Creo e riempo la matrice 9*9
    var m=new Array(9);
    for(i=0;i<9;i++)m[i]=new Array(9);

    var m2=new Array(9);
    for(i=0;i<9;i++)m2[i]=new Array(9);

    var number=new Array(9);

    var v=new Array(81);

    v="abcdefghighiabcdefdefghiabcbcdefghiahiabcdefgef ghiabcdcdefghiabiabcdefghfghiabcde";

    var s,x,r,co;
    //Pezzo copiato dal C
    for(s=0;s<9;s++)number[s]=0;


    //Calcolo numeri random
    s=0;
    while(s<9){
    x=random(9);
    if(number[x]==0){
    k=s+1;
    number[x]=k;

    s++; }

    }


    s=0;
    for(r=0;r<9;r++){
    for(co=0;co<9;co++){



    if(v[s]=="a"){m[r][co]=number[0];}
    else if(v[s]=="b"){m[r][co]=number[1];}
    else if(v[s]=="c"){m[r][co]=number[2];}
    else if(v[s]=="d"){m[r][co]=number[3];}
    else if(v[s]=="e"){m[r][co]=number[4];}
    else if(v[s]=="f"){m[r][co]=number[5];}
    else if(v[s]=="g"){m[r][co]=number[6];}
    else if(v[s]=="h"){m[r][co]=number[7];}
    else if(v[s]=="i"){m[r][co]=number[8];}
    s++;
    }


    }

    //copio matrice
    for(c=0;c<9;c++)
    for(r=0;r<9;r++)m2[r][c]=m[r][c];

    //Nascondi celle

    k=1;
    while(k<36+1){
    r=random(9);
    c=random(9);
    if(m[r][c]!=0){m[r][c]=" ";k++;} }


    //fine copia dal +c

    document.writeln("<font size=6><table border=1 width=50% align=center> ");


    for(c=0;c<9;c++){
    document.writeln("<tr >");
    for(r=0;r<9;r++){document.writeln("<td align=center>"+m[r][c]+"</td>");if(r==2 || r==5){document.writeln("");}}
    document.writeln("
    ");
    if(c==2 || c==5)document.writeln("</tr>");
    }

    document.writeln("</table></font>");



    </script>



    <input type="button" onclick="soluzione();" value="Soluzione">
    <script language="javascript">

    function soluzione(){



    document.writeln("<font size=6>La soluzione è
    <table border=1 width=50% align=center> ");


    for(c=0;c<9;c++){
    document.writeln("<tr >");
    for(r=0;r<9;r++){document.writeln("<td align=center><font size=6>"+m2[r][c]+"</font></td>");if(r==2 || r==5){document.writeln("");}}
    document.writeln("
    ");
    if(c==2 || c==5)document.writeln("</tr>");
    }

    document.writeln("</table></font>");


    return false;



    }</script>




    </body>

    </html>

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: Gioco sodoku problemi compatibilità con internet explorer

    Non credo che questa parte vada proprio benissimo:

    var v=new Array(81);
    v="abcdefghighiabcdefdefghiabcbcdefghiahiabcdefgef ghiabcdcdefghiabiabcdefghfghiabcde";

    prova questo:

    var v="abcdefghighiabcdefdefghiabcbcdefghiahiabcdefgef ghiabcdcdefghiabiabcdefghfghiabcde".split("");

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Perfetto ora funziona anche su Internet explorer grazie mille il .split("") serve per dividere l'array giusto?... Un altra domanda.... su firefox quando clicco su soluzione mi si apre correttamente la pagina con la soluzione ma risulta come se si stia caricando(clessidra e firefox dice caricamento in corso) qundo invecie gia è caricata e fa così all'infiito finche non faccio termina... qualche idea? tks ciao

  4. #4

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ho fatto qualche piccola modifica...
    codice:
    <html>
    <head>
    <title>Sudoku</title>
    <style>
    TD	{width: 40px; height: 40px; text-align: center; font-size: 200%; font-weight: bold; border: 1px solid gray;}
    P {font-size: 200%;}
    </style>
    </head>
    <body>
    
    <p align="center">Sudoku </p>
    <script language="javascript">
    
    //Numero casuale
    function rnd(limits) {
         num = Math.round(Math.random()*30031) % limits;
         return num;
    }
    
    //Creo e riempo la matrice 9*9
    var m=new Array(9);
    for(i=0;i<9;i++) m[i]=new Array(9);
    
    var m2=new Array(9);
    for(i=0;i<9;i++) m2[i]=new Array(9);
    
    var number=new Array(9);
    
    var v="abcdefghighiabcdefdefghiabcbcdefghiahiabcdefgefghiabcdcdefghiabiabcdefghfghiabcde".split("");
    
    var s,x,r,co;
    //Pezzo copiato dal C
    for(s=0;s<9;s++){
    	number[s]=0;
    }
    
    //Calcolo numeri random
    s=0;
    while(s<9){
    	x=rnd(9);
    	if(number[x]==0){
    		k=s+1;
    		number[x]=k;
    		s++;
    	}
    }
    
    s=0;
    for(r=0;r<9;r++){
    	for(co=0;co<9;co++){
    		if(v[s]=="a"){m[r][co]=number[0];}
    		else if(v[s]=="b"){m[r][co]=number[1];}
    		else if(v[s]=="c"){m[r][co]=number[2];}
    		else if(v[s]=="d"){m[r][co]=number[3];}
    		else if(v[s]=="e"){m[r][co]=number[4];}
    		else if(v[s]=="f"){m[r][co]=number[5];}
    		else if(v[s]=="g"){m[r][co]=number[6];}
    		else if(v[s]=="h"){m[r][co]=number[7];}
    		else if(v[s]=="i"){m[r][co]=number[8];}
    		s++;
    	}
    }
    
    //copio matrice
    for(c=0;c<9;c++) for(r=0;r<9;r++) m2[r][c]=m[r][c];
    
    //Nascondi celle
    k=1;
    while(k<36+1){
    	r=rnd(9);
    	c=rnd(9);
    	if(m[r][c]!=0&&m[r][c]!=""){
    		m[r][c]="";
    		k++;
    	} 
    }
    
    //fine copia dal +c
    
    document.writeln("<table border=0 cellspacing=0 cellpadding=0 align=center style='border-collapse:collapse;border:3px solid black;'> ");
    
    for(r=0;r<9;r++){
    	document.writeln("<tr>");
    	for(c=0;c<9;c++){
    		document.writeln("<td align=center>"+m[r][c]+"</td>");
    		if(c==2 || c==5) document.writeln("<td style='background-color:black;width:1px;border:none;'>[img][/img]</td>");
    	}
    	if(r==2 || r==5) document.writeln("<tr><td colspan=11 style='background-color:black;height:2px;border:none;'>[img][/img]</td></tr>");
    	document.writeln("</tr>");
    }
    
    document.writeln("</table></font>");
    
    </script>
    <input type="button" onclick="soluzione();" value="Soluzione">
    <div id="sol"></div>
    <script language="javascript">
    
    function soluzione(){
    var str = "<font size=6>La soluzione è 
    <table border=0 cellspacing=0 cellpadding=0 align=center style='border-collapse:collapse;border:3px solid black;'> ";
    
    for(r=0;r<9;r++){
    	str += "<tr>";
    	for(c=0;c<9;c++){
    		str += "<td align=center>"+m2[r][c]+"</td>";
    		if(c==2 || c==5) str += "<td style='background-color:black;width:1px;border:none;'>[img][/img]</td>";
    	}
    	str += "</tr>";
    	if(r==2 || r==5) str += "<tr><td colspan=11 style='background-color:black;height:2px;border:none;'>[img][/img]</td></tr>";
    }
    str += "</table></font>";
    
    document.getElementById("sol").innerHTML = str;
    
    return false;
    
    }
    </script>
    </body>
    </html>
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.