What is wrong with this script? Images doesn't show.  | Needs Regular Fix | | Join Date: Jan 2007 Location: MN, USA - but rather be in UK
Posts: 356
| |
2x2 Sudoku doesn't work at all. The images don't show up on the grid. I don't understand JavaScript very well. Just learning it. Thanks! - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
<html>
-
<head>
-
-
<title>Sudoku 9</title>
-
-
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
-
<link type="text/css" rel="stylesheet" href="http://www.tpgames.net/gaming/2/game.css">
-
<link rel="shortcut icon" href="http://www.tpgames.net/tpgamesicon.gif">
-
-
<script language="JavaScript1.2">
-
var IsNetscape;
-
if(navigator.appName == "Netscape")
-
{ IsNetscape = true;
-
document.captureEvents(Event.KEYDOWN)
-
}
-
else IsNetscape = false;
-
function NetscapeKeyDown(key)
-
{ if(IsNetscape)
-
KeyDown(key.which);
-
}
-
document.onkeydown = NetscapeKeyDown;
-
</script>
-
<script for=document event="onkeydown()" language="JScript">
-
if (window.event) KeyDown(window.event.keyCode);
-
</script>
-
<script language="JavaScript">
-
var i, j, k, I_Sel, J_Sel, K_Sel, L_Sel, StartTime, EndTime, IsOver;
-
-
PreFld0=new Array(
-
new Array(
-
new Array(new Array(1,2),new Array(3,4)),
-
new Array(new Array(3,4),new Array(1,2)),
-
new Array(
-
new Array(new Array(2,3),new Array(4,1)),
-
new Array(new Array(4,1),new Array(2,3)),
-
new Array(
-
new Array(new Array(3,4),new Array(1,2)),
-
new Array(new Array(1,2),new Array(3,4))));
-
-
PreFld=new Array(
-
new Array(
-
new Array(new Array(1,2),new Array(3,4)),
-
new Array(new Array(3,4),new Array(1,2)),
-
new Array(
-
new Array(new Array(2,3),new Array(4,1)),
-
new Array(new Array(4,1),new Array(2,3)),
-
new Array(
-
new Array(new Array(3,4),new Array(1,2)),
-
new Array(new Array(1,2),new Array(3,4))));
-
-
Fld=new Array(
-
new Array(
-
new Array(new Array(1,2),new Array(3,4)),
-
new Array(new Array(3,4),new Array(1,2)),
-
new Array(
-
new Array(new Array(2,1),new Array(4,3)),
-
new Array(new Array(4,3),new Array(2,1)),
-
new Array(
-
new Array(new Array(1,4),new Array(3,2)),
-
new Array(new Array(3,2),new Array(1,4))));
-
-
NPic = new Array(5);
-
NPic[0] = new Image();
-
NPic[0].src = "rebu_n.gif";
-
for (i=1; i < 5; i++)
-
{ NPic[i] = new Image();
-
NPic[i].src = "rebu"+eval(i)+"n.gif";
-
}
-
QPic = new Image();
-
QPic.src = "rebu0q.gif";
-
-
function Clicked(ii, jj, kk, ll)
-
{ var ff=false;
-
if (IsOver) return;
-
if (I_Sel>=0) window.document.images[4*I_Sel+4*J_Sel+K_Sel+2*L_Sel].src = NPic[0].src;
-
if (Fld[ii][jj][kk][ll]>0) return;
-
I_Sel=ii;
-
J_Sel=jj;
-
K_Sel=kk;
-
L_Sel=ll;
-
window.document.images[4*I_Sel+4*J_Sel+K_Sel+2*L_Sel].src = QPic.src;
-
}
-
-
-
-
function KeyDown(whichkey)
-
{ if (IsOver) return;
-
if (I_Sel==-1) return;
-
if ((whichkey>=48)&&(whichkey<=57))
-
{ Fld[I_Sel][J_Sel][K_Sel][L_Sel]=48-whichkey;
-
window.document.images[4*I_Sel+4*J_Sel+K_Sel+2*L_Sel].src = NPic[whichkey-48].src;
-
I_Sel=-1;
-
}
-
if (IsSolved())
-
{ IsOver=true;
-
Now = new Date();
-
EndTime = Now.getTime() / 1000;
-
i=Math.floor(EndTime - StartTime);
-
if (window.opener)
-
{ if (window.opener.SetHighscores)
-
window.opener.SetHighscores("Sudoku","",i,-1);
-
}
-
alert("Super, you solved this game in "+i+ " seconds !");
-
}
-
}
-
-
function IsSolved()
-
{ var ii,jj,kk,ll,nn;
-
bb=new Array(10);
-
for (ii=0; ii<2; ii++)
-
{ for (jj=0; jj<2; jj++)
-
{ for (nn=0; nn<10; nn++) bb[nn]=0;
-
for (kk=0; kk<2; kk++)
-
{ for (ll=0; ll<2; ll++)
-
bb[Math.abs(Fld[ii][jj][kk][ll])]++;
-
}
-
if (bb[0]>0) return(false);
-
for (nn=1; nn<10; nn++)
-
{ if (bb[nn]!=1) return(false);
-
}
-
}
-
}
-
for (ii=0; ii<2; ii++)
-
{ for (kk=0; kk<2; kk++)
-
{ for (nn=1; nn<10; nn++) bb[nn]=0;
-
for (jj=0; jj<2; jj++)
-
{ for (ll=0; ll<2; ll++)
-
bb[Math.abs(Fld[ii][jj][kk][ll])]++;
-
}
-
for (nn=1; nn<10; nn++)
-
{ if (bb[nn]!=1) return(false);
-
}
-
}
-
}
-
for (jj=0; jj<2; jj++)
-
{ for (ll=0; ll<2; ll++)
-
{ for (nn=1; nn<10; nn++) bb[nn]=0;
-
for (ii=0; ii<2; ii++)
-
{ for (kk=0; kk<2; kk++)
-
bb[Math.abs(Fld[ii][jj][kk][ll])]++;
-
}
-
for (nn=1; nn<10; nn++)
-
{ if (bb[nn]!=1) return(false);
-
}
-
}
-
}
-
return(true);
-
}
-
-
function Show()
-
{ if (IsOver)
-
{ alert("Everything's okay.");
-
return;
-
}
-
for (i=0; i<2; i++)
-
{ for (j=0; j<2; j++)
-
{ for (k=0; k<2; k++)
-
{ for (l=0; l<2; l++)
-
Fld[i][j][k][l]=PreFld[i][j][k][l];
-
}
-
}
-
}
-
IsOver=true;
-
I_Sel=-1;
-
RefreshScreen();
-
alert(" TIM solved it for you!");
-
}
-
-
function SwitchI(ii0,ii1)
-
{ var jj,kk,ll,tt;
-
for (jj=0; jj<2; jj++)
-
{ for (kk=0; kk<2; kk++)
-
{ for (ll=0; ll<2; ll++)
-
{ tt=PreFld[ii0][jj][kk][ll];
-
PreFld[ii0][jj][kk][ll]=PreFld[ii1][jj][kk][ll];
-
PreFld[ii1][jj][kk][ll]=tt;
-
}
-
}
-
}
-
}
-
-
function SwitchJ(jj0,jj1)
-
{ var ii,kk,ll,tt;
-
for (ii=0; ii<2; ii++)
-
{ for (kk=0; kk<2; kk++)
-
{ for (ll=0; ll<2; ll++)
-
{ tt=PreFld[ii][jj0][kk][ll];
-
PreFld[ii][jj0][kk][ll]=PreFld[ii][jj1][kk][ll];
-
PreFld[ii][jj1][kk][ll]=tt;
-
}
-
}
-
}
-
}
-
-
function SwitchK(ii,kk0,kk1)
-
{ var jj,ll,tt;
-
for (jj=0; jj<2; jj++)
-
{ for (ll=0; ll<2; ll++)
-
{ tt=PreFld[ii][jj][kk0][ll];
-
PreFld[ii][jj][kk0][ll]=PreFld[ii][jj][kk1][ll];
-
PreFld[ii][jj][kk1][ll]=tt;
-
}
-
}
-
}
-
-
function SwitchL(jj,ll0,ll1)
-
{ var ii,kk,tt;
-
for (ii=0; ii<2; ii++)
-
{ for (kk=0; kk<2; kk++)
-
{ tt=PreFld[ii][jj][kk][ll0];
-
PreFld[ii][jj][kk][ll0]=PreFld[ii][jj][kk][ll1];
-
PreFld[ii][jj][kk][ll1]=tt;
-
}
-
}
-
}
-
-
function MixNumbers()
-
{ var nn,tt,ii,jj,kk,ll,rr=new Array(0,1,2,3,4);
-
for (nn=0; nn<48; nn++)
-
{ ii=1+Math.floor(Math.random()*4);
-
jj=1+Math.floor(Math.random()*4);
-
tt=rr[ii];
-
rr[ii]=rr[jj];
-
rr[jj]=tt;
-
}
-
for (ii=0; ii<2; ii++)
-
{ for (jj=0; jj<2; jj++)
-
{ for (kk=0; kk<2; kk++)
-
{ for (ll=0; ll<2; ll++)
-
{ tt=PreFld[ii][jj][kk][ll];
-
PreFld[ii][jj][kk][ll]=rr[tt];
-
}
-
}
-
}
-
}
-
}
-
-
function random(nn)
-
{ return(Math.floor(Math.random()*nn));
-
}
-
-
function Scramble()
-
{ var ff=0, ss, tt, vv0, vv1, vv2;
-
for (i=0; i<2; i++)
-
{ for (j=0; j<2; j++)
-
{ for (k=0; k<2; k++)
-
{ for (l=0; l<2; l++)
-
PreFld[i][j][k][l]=PreFld0[i][j][k][l];
-
}
-
}
-
}
-
for (j=0; j<2; j++)
-
{ tt=PreFld[0][j][0][0];
-
for (k=0; k<1; k++)
-
PreFld[0][j][k][0]=PreFld[0][j][k+1][0];
-
PreFld[0][j][2][0]=tt;
-
}
-
for (j=0; j<2; j++)
-
{ tt=PreFld[0][j][2][2];
-
for (k=1; k>0; k--)
-
PreFld[0][j][k][2]=PreFld[0][j][k-1][2];
-
PreFld[0][j][0][2]=tt;
-
}
-
for (ff=0; ff<54; ff++)
-
{ j=random(2);
-
k=random(2);
-
vv0=PreFld[0][j][k][1];
-
vv1=PreFld[0][j][k][2];
-
if (PreFld[1][j][(k+2)%3][1]==vv1)
-
{ vv2=PreFld[1][j][(k+2)%3][2];
-
for (tt=0; tt<2; tt++)
-
{ if ((PreFld[2][j][tt][1]==vv2)&&(PreFld[2][j][tt][2]==vv0))
-
{ PreFld[0][j][k][1]=vv1;
-
PreFld[0][j][k][2]=vv0;
-
PreFld[1][j][(k+2)%3][1]=vv2;
-
PreFld[1][j][(k+2)%3][2]=vv1;
-
PreFld[2][j][tt][1]=vv0;
-
PreFld[2][j][tt][2]=vv2;
-
}
-
}
-
}
-
j=random(2);
-
k=random(2);
-
vv0=PreFld[0][j][k][0];
-
vv1=PreFld[0][j][k][1];
-
if (PreFld[1][j][k][0]==vv1)
-
{ vv2=PreFld[1][j][k][1];
-
for (tt=0; tt<2; tt++)
-
{ if ((PreFld[2][j][tt][0]==vv2)&&(PreFld[2][j][tt][1]==vv0))
-
{ PreFld[0][j][k][0]=vv1;
-
PreFld[0][j][k][1]=vv0;
-
PreFld[1][j][k][0]=vv2;
-
PreFld[1][j][k][1]=vv1;
-
PreFld[2][j][tt][0]=vv0;
-
PreFld[2][j][tt][1]=vv2;
-
}
-
}
-
}
-
}
-
for (ff=0; ff<3; ff++)
-
{ i=random(2);
-
j=random(2);
-
if (i!=j) SwitchI(i,j);
-
i=random(2);
-
j=random(2);
-
if (i!=j) SwitchJ(i,j);
-
i=random(2);
-
k=random(2);
-
l=random(2);
-
if (k!=l) SwitchK(i,k,l);
-
j=random(2);
-
k=random(2);
-
l=random(2);
-
if (k!=l) SwitchL(j,k,l);
-
}
-
MixNumbers();
-
for (i=0; i<2; i++)
-
{ for (j=0; j<2; j++)
-
{ for (k=0; k<2; k++)
-
{ for (l=0; l<2; l++)
-
Fld[i][j][k][l]=PreFld[i][j][k][l];
-
}
-
}
-
}
-
ff=0;
-
while (ff<40)
-
{ i=Math.floor(Math.random()*2);
-
j=Math.floor(Math.random()*2);
-
k=Math.floor(Math.random()*2);
-
l=Math.floor(Math.random()*2);
-
if (Fld[i][j][k][l]>0) { Fld[i][j][k][l]=0; ff++; }
-
if (Fld[2-i][2-j][2-k][2-l]>0) { Fld[2-i][2-j][2-k][2-l]=0; ff++; }
-
if (Fld[j][i][l][k]>0) { Fld[j][i][l][k]=0; ff++; }
-
if (Fld[2-j][2-i][2-l][2-k]>0) { Fld[2-j][2-i][2-l][2-k]=0; ff++; }
-
}
-
I_Sel=-1;
-
IsOver=false;
-
RefreshScreen();
-
Now = new Date();
-
StartTime = Now.getTime() / 1000;
-
}
-
-
function RefreshScreen()
-
{ for (i=0; i<2; i++)
-
{ for (j=0; j<2; j++)
-
{ for (k=0; k<2; k++)
-
{ for (l=0; l<2; l++)
-
{ window.document.images[4*i+24*j+k+2*l].src = NPic[Fld[i][j][k][l]].src;
-
}
-
}
-
}
-
}
-
}
-
function Help()
-
{ alert("Put the missing Czech letters into the grid"+
-
"\nso that every letter occurs once in every row"+
-
"\nand column and in every 2x2 block."+
-
"\nThe `A means Put answer here.");
-
}
-
</script>
-
|  | Needs Regular Fix | | Join Date: Jan 2007 Location: MN, USA - but rather be in UK
Posts: 356
| | | re: What is wrong with this script? Images doesn't show.
The rest of the code, as I have no clue where my error might be. - </head>
-
<BODY bgcolor="#eeddcc">
-
-
<form>
-
<DIV ALIGN=center>
-
<table border=0 cellpadding=4 cellspacing=0 align=center><tr><th colspan=3>
-
<script language="JavaScript">
-
document.open("text/plain");
-
document.writeln("<table border=0 cellpadding=0 cellspacing=1 bgcolor='#000000'><tr><th><table border=0 cellpadding=0 cellspacing=2>");
-
for (j=0; j < 2; j++)
-
{ document.writeln("<tr>");
-
for (i=0; i < 2; i++)
-
{ document.writeln("<th><table border=0 cellpadding=0 cellspacing=0>");
-
for (l=0; l<2; l++)
-
{ document.writeln("<tr>");
-
for (k=0; k<2; k++)
-
document.writeln("<th><IMG src=\"rebu_n.gif\" border=0 onMouseDown=\"Clicked("+i+","+j+","+k+","+l+")\"></th>");
-
document.writeln("</tr>");
-
}
-
document.writeln("</table></th>");
-
}
-
document.writeln("</tr>");
-
}
-
document.writeln("</table></th></tr></table></th></tr>");
-
document.writeln("<tr><th colspan=3><table border=0 cellpadding=0 cellspacing=1>");
-
document.writeln("<tr align=center>");
-
for (i=1; i < 5; i++)
-
document.writeln("<td><IMG src=\"rebu"+eval(i)+"n.gif\" border=0 onMouseDown=\"KeyDown("+eval(48+i)+")\"></td>");
-
document.writeln("</tr>");
-
document.writeln("</table></th></tr>");
-
-
if (navigator.appName == "Konqueror")
-
{ document.write("<tr><td colspan=3><input width=0 height=0 style=\"width:0; height:0\" name=\"KeyCatch\" onBlur=\"KeyCatchFocus()\" onKeyUp=\"KeyCatchChange()\"></td></tr>");
-
KeyCatchFocus();
-
}
-
function KeyCatchFocus()
-
{ setTimeout("document.forms[0].KeyCatch.focus()",100);
-
}
-
function KeyCatchChange()
-
{ var vv=""+document.forms[0].KeyCatch.value;
-
if (vv=="") return;
-
KeyDown(vv.charCodeAt(0));
-
document.forms[0].KeyCatch.value="";
-
}
-
-
document.close();
-
</script>
-
<tr>
-
<th><input type=button value="NEW" width=70 style="width:70" onClick="javascript:Scramble()"></th>
-
<th><input type=button value="SOLVE IT" width=90 style="width:90" onClick="javascript:Show()"></th>
-
<th><input type=button value="RULES" width=70 style="width:70" onClick="javascript:Help()"></th>
-
</tr>
-
-
<tr>
-
<td class="tpmarble"><a href="http://www.tpgames.net/gaming/2/labnav.html"> Games </a></td>
-
<td class="tpmarble"><a href="http://www.tpgames.net/gaming/2/puzzlers/sudoku/sudoku.html"> Sudoku </a></td>
-
<td class="tpmarble"><a href="http://www.tpgames.net/gaming/2/puzzlersnav.html"> Puzzlers </a></td>
-
</tr>
-
-
-
</table>
-
</DIV>
-
</form>
-
<script language="JavaScript">
-
Scramble();
-
</script>
-
</BODY>
-
</HTML>
|  | Moderator | | Join Date: Jul 2006 Location: The Netherlands
Posts: 4,139
| | | re: What is wrong with this script? Images doesn't show.
With this size of code (no of lines) shown, I am bound to ask you:
what have you done so far to pinpoint the area in which the problem is occurring? Like traces, traps, debug texts, etc.
Ronald :cool:
|  | Site Moderator | | Join Date: Nov 2006 Location: UK
Posts: 14,581
| | | re: What is wrong with this script? Images doesn't show.
You're converting a 3x3 script to a 2x2, so make sure you understand what's going on in the 3x3 one first before attempting to make any changes.
There's some keyboard checking code which is not the best. You should never use browser sniffing except as a last resort. You can check for the key pressed using a cross-browser method using object detection using something similar to the code in this link.
|  | Similar JavaScript / Ajax / DHTML bytes | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,419 network members.
|