let my={} function init(){let version='0.61' my.wd=300 my.ht=250 let bdStr='' my.doneClr='#cde' my.clrs=['#669','#336'] let curnum=0 let clrN=0 for(let i=0;i<8;i++){bdStr+='
' clrN=1-clrN for(let j=0;j<8;j++){clrN=1-clrN let clr=my.clrs[clrN] bdStr+='
' bdStr+='
' curnum++} bdStr+='
'} let s=wrap({style:'text-align:center;'},wrap({id:'scoretxt',cls:'large',pos:'dib',style:'left:3px; bottom:3px'}),wrap({tag:'btn',pos:'dib',style:'margin-left:30px',fn:'restart()'},'Restart'),bdStr) docInsert(s) my.imgHome=(document.domain=='localhost'?'/mathsisfun':'')+'/games/images/' my.chgs=[-17,-15,-10,-6,6,10,15,17] restart() scoreUpdate()} function restart(){my.squares=[] let clrN=0 for(var i=0;i<64;i++){my.squares[i]=false document.getElementById('cell'+i).innerHTML='' document.getElementById('cell'+i).style.backgroundColor=my.clrs[clrN] if((i+1)%8)clrN=1-clrN} document.getElementById('cell0').innerHTML='' document.getElementById('cell0').style.backgroundColor=my.doneClr my.squares[0]=true my.oldPos=0 my.score=0 scoreUpdate()} function moveto(square){let currPos=parseInt(square.id.substr(4)) let validQ=false for(let i=0;i' document.getElementById('cell'+currPos).style.backgroundColor=my.doneClr my.oldPos=currPos my.squares[currPos]=true} scoreUpdate()} function scoreUpdate(){let notN=0 for(var i=0;i<64;i++)if(my.squares[i]!=true)notN++ let s='Moves: '+my.score+' ('+notN+' squares left)' if(notN==0){s='You WIN, in only '+my.score+' moves'} document.getElementById('scoretxt').innerHTML=s} function docInsert(s){let div=document.createElement('div') div.innerHTML=s let script=document.currentScript script.parentElement.insertBefore(div,script)} function wrap({id='',cls='',pos='rel',style='',txt='',tag='div',lbl='',fn='',opts=[]},...mores){let s='' s+='\n' txt+=mores.join('') s+={btn:()=>{if(cls.length==0)cls='btn' return '