'); } addon_hash=addon_hash.substring(addon_ins2+1); } baseurl_https="https://fumen.zui.jp/"; baseurl_http="http://fumen.zui.jp/"; titorg=document.title; enclim=32768; // 限界エンコード文字数 enc=new Array(enclim+1024); // エンコード配列 enctbl='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' // エンコード文字テーブル asctbl=' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'; // ASCII文字テーブル framelim=2000; // 限界フレーム数 fldlines=24; // フィールド段数 fldblks=fldlines*10; // フィールドブロック数 f=new Array(fldblks);encf=new Array(fldblks);af=new Array(fldblks*(framelim+1)); // 仮想フィールド p=new Array(3);ap=new Array(3*(framelim+1)); // ピース種類,角度,座標 pcustom=new Array(-1,-1,-1,-1); // カスタムピース座標 pce=0; // カスタムピース作成色 au=new Array(framelim); // せり上がり am=new Array(framelim); // 反転スイッチ ac=new Array(framelim); // コメント ad=new Array(framelim); // 接着 tf=new Array(-1,-1,-1,-1); // 仮ピース c=new Array( // ブロック色 "#000000","#990000","#996600","#999900","#009900","#009999","#0000bb","#990099","#999999", "#333333","#ff0000","#ff9900","#ffff00","#00ff00","#00ffff","#0000ff","#ff00ff","#cccccc", "#000000","#cc3333","#cc9933","#cccc33","#33cc33","#33cccc","#3333cc","#cc33cc","#cccccc", "#000000","#009999","#996600","#999900","#990000","#990099","#0000bb","#009900","#999999", "#333333","#00ffff","#ff9900","#ffff00","#ff0000","#ff00ff","#0000ff","#00ff00","#cccccc", "#000000","#33cccc","#cc9933","#cccc33","#cc3333","#cc33cc","#3333cc","#33cc33","#cccccc" ); ct=1; // 色 b=new Array( // ピースパターン 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,2,1,3,1,1,0,1,1,1,2,1,3,0,1,1,1,2,1,3,1,1,0,1,1,1,2,1,3, 0,1,1,1,2,1,0,2,1,0,1,1,1,2,2,2,2,0,0,1,1,1,2,1,0,0,1,0,1,1,1,2, 1,1,2,1,1,2,2,2,1,1,2,1,1,2,2,2,1,1,2,1,1,2,2,2,1,1,2,1,1,2,2,2, 0,1,1,1,1,2,2,2,2,0,1,1,2,1,1,2,0,1,1,1,1,2,2,2,2,0,1,1,2,1,1,2, 0,1,1,1,2,1,1,2,1,0,1,1,2,1,1,2,1,0,0,1,1,1,2,1,1,0,0,1,1,1,1,2, 0,1,1,1,2,1,2,2,1,0,2,0,1,1,1,2,0,0,0,1,1,1,2,1,1,0,1,1,0,2,1,2, 1,1,2,1,0,2,1,2,0,0,0,1,1,1,1,2,1,1,2,1,0,2,1,2,0,0,0,1,1,1,1,2 ); rtta=new Array( +1,+0, // I[0+] +1,+0, // I[0-] -1,+0, // I[1+] -1,+0, // I[1-] +1,+0, // I[2+] +1,+0, // I[2-] -1,+0, // I[3+] -1,+0, // I[3-] +0,+0, // L[0+] +0,+0, // L[0-] +0,+1, // L[1+] +0,+0, // L[1-] +0,-1, // L[2+] +0,-1, // L[2-] +0,+0, // L[3+] +0,+1, // L[3-] +0,+0, // O[0+] +0,+0, // O[0-] +0,+0, // O[1+] +0,+0, // O[1-] +0,+0, // O[2+] +0,+0, // O[2-] +0,+0, // O[3+] +0,+0, // O[3-] +0,+0, // Z[0+] +0,+0, // Z[0-] +0,+0, // Z[1+] +0,+0, // Z[1-] +0,+0, // Z[2+] +0,+0, // Z[2-] +0,+0, // Z[3+] +0,+0, // Z[3-] +0,+0, // T[0+] +0,+0, // T[0-] +0,+1, // T[1+] +0,+0, // T[1-] +0,-1, // T[2+] +0,-1, // T[2-] +0,+0, // T[3+] +0,+1, // T[3-] +0,+0, // J[0+] +0,+0, // J[0-] +0,+1, // J[1+] +0,+0, // J[1-] +0,-1, // J[2+] +0,-1, // J[2-] +0,+0, // J[3+] +0,+1, // J[3-] +0,+0, // S[0+] +0,+0, // S[0-] +0,+0, // S[1+] +0,+0, // S[1-] +0,+0, // S[2+] +0,+0, // S[2-] +0,+0, // S[3+] +0,+0, // S[3-] +1,-1, // I[2+] +0,-1, // I[2-] -1,+0, // I[3+] -1,+1, // I[3-] +0,+0, // I[0+] +1,+0, // I[0-] +0,+1, // I[1+] +0,+0, // I[1-] +0,+0, // L[2+] +0,+0, // L[2-] +0,+0, // L[3+] +0,+0, // L[3-] +0,+0, // L[0+] +0,+0, // L[0-] +0,+0, // L[1+] +0,+0, // L[1-] +0,+0, // O[2+] +0,+0, // O[2-] +0,+0, // O[3+] +0,+0, // O[3-] +0,+0, // O[0+] +0,+0, // O[0-] +0,+0, // O[1+] +0,+0, // O[1-] +0,+0, // Z[2+] -1,+0, // Z[2-] +0,-1, // Z[3+] +0,+0, // Z[3-] -1,+1, // Z[0+] +0,+1, // Z[0-] +1,+0, // Z[1+] +1,-1, // Z[1-] +0,+0, // T[2+] +0,+0, // T[2-] +0,+0, // T[3+] +0,+0, // T[3-] +0,+0, // T[0+] +0,+0, // T[0-] +0,+0, // T[1+] +0,+0, // T[1-] +0,+0, // J[2+] +0,+0, // J[2-] +0,+0, // J[3+] +0,+0, // J[3-] +0,+0, // J[0+] +0,+0, // J[0-] +0,+0, // J[1+] +0,+0, // J[1-] +1,+0, // S[2+] +0,+0, // S[2-] -1,-1, // S[3+] -1,+0, // S[3-] +0,+1, // S[0+] +1,+1, // S[0-] +0,+0, // S[1+] +0,-1 // S[1-] ); rttb=new Array( +0,+0, +1,+0, -2,+0, +1,+2, -2,-1, // [2+] +0,+0, +2,+0, -1,+0, +2,-1, -1,+2, // [2-] +0,+0, +2,+0, -1,+0, +2,-1, -1,+2, // [3+] +0,+0, -1,+0, +2,+0, -1,-2, +2,+1, // [3-] +0,+0, -1,+0, +2,+0, -1,-2, +2,+1, // [0+] +0,+0, -2,+0, +1,+0, -2,+1, +1,-2, // [0-] +0,+0, +1,+0, -2,+0, -2,+1, +1,-2, // [1+] +0,+0, -2,+0, +1,+0, +1,+2, -2,-1, // [1-] +0,+0, -1,+0, -1,-1, +0,+2, -1,+2, // [2+] +0,+0, +1,+0, +1,-1, +0,+2, +1,+2, // [2-] +0,+0, +1,+0, +1,+1, +0,-2, +1,-2, // [3+] +0,+0, +1,+0, +1,+1, +0,-2, +1,-2, // [3-] +0,+0, +1,+0, +1,-1, +0,+2, +1,+2, // [0+] +0,+0, -1,+0, -1,-1, +0,+2, -1,+2, // [0-] +0,+0, -1,+0, -1,+1, +0,-2, -1,-2, // [1+] +0,+0, -1,+0, -1,+1, +0,-2, -1,-2 // [1-] ); spf=new Array(56); updateflag=0; framemax=0; // 最大フレーム番号 frame=0; // フレーム番号 fe=8; // フィールド作成色 cmd=-1; mini=0; dumpmin=0; quiztbl='ILOZTJS()[]'; quiz=0; quiznx=new Array(-1,-1,-1); quizcur=-1; quizhld=-1; quizcm=''; qf=new Array(86); cmstrrep=''; eventbutton=0; dblclickchk=0; mcap=0; mcx=0;mcy=0; mclx=0;mcly=0; mcdx=0;mcdy=0; kbfcs=false; document. function evbutton1() { eventbutton=1; } document. function evbutton0() { eventbutton=0; dblclickchk=0; mcap=0; } function versioncheck(startframe){ // バージョン判定 var tx=document.getElementById("tx"); var edit=document.getElementById("edit"); if(updateflag){ if(confirm(STRING_DESTROY_CONFIRM)!=1){ return; } } if(tx!=null)verstr=tx.value; insurl1=verstr.indexOf(':'); insurl2=verstr.indexOf('?'); if(insurl1>=0&&insurl2>=0&&insurl1[Edit]';} encstr=verstr.substring(lng+1); tmpstr=verstr.substring(0,lng); verstr=''; for(i=0;i<=lng;i++){ tmp=enctbl.indexOf(tmpstr.charAt(i));if(tmp>=0)verstr=verstr+tmpstr.charAt(i); } if(verstr.substring(0,1)=='m')verstr='v'+verstr.substring(1); if(verstr.substring(0,1)=='d')verstr='v'+verstr.substring(1); if(verstr.substring(0,1)=='D')verstr='v'+verstr.substring(1); if(verstr=='v095')decode095(startframe); if(verstr=='v100')decode100(startframe); if(verstr=='v105')decode105(startframe); if(verstr=='v110')decode110(startframe); if(verstr=='v115')decode115(startframe); } } function decode090(startframe){ // ☆ データ読み込み Ver 0.90 var tx=document.getElementById("tx"); var pg=document.getElementById("pg"); var clt=document.getElementById("clt"); var nx=document.getElementById("nx"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); startframe=((startframe!=null&&startframe>0)?startframe:0); encstr=tx.value; enclen=0; for(i=0;i=0)enc[enclen++]=tmp; } for(i=enclen;i0){ for(j=0;j<4;j++)af[(e+1)*fldblks+ap[e*3+2]+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2+1]*10+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2]-11]=ap[e*3+0]; } // フィールドずらし消去 for(i=20,k=20;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(af[(e+1)*fldblks+k*10+j+fldblks-220]>0); if(chk<10){ for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+k*10+j+fldblks-220]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=0; // せり上がり if(au[e]){for(i=0;i<210;i++)af[(e+1)*fldblks+i+fldblks-220]=af[(e+1)*fldblks+i+10+fldblks-220];for(i=210;i<220;i++)af[(e+1)*fldblks+i+fldblks-220]=0;} // ミラー発動 if(am[e])for(i=0;i<21;i++)for(j=0;j<5;j++){tmp=af[(e+1)*fldblks+i*10+j+fldblks-220];af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+i*10+9-j+fldblks-220];af[(e+1)*fldblks+i*10+9-j+fldblks-220]=tmp;} // その他 } if(e>startframe){ framemax=e-1;frame=startframe; for(i=0;i=0&&af[i]<=8))af[i]=0;} if(mini!=2){ popframe(frame); clt.checked=ct; refreshPage(); refreshcolor(); out.className="theme5a"; updateflag=0; if(url!=null){url.value="";} if(submit!=null){submit.disabled=true;} if(view!=null){view.value="";} if(dump!=null){dump.value="";} if(viewjmp!=null){viewjmp.removeAttribute("href");} if(dumpjmp!=null){dumpjmp.removeAttribute("href");} } }else{ updateflag=0; newdata(startframe); } } function decode095(startframe){ // ☆ データ読み込み Ver 0.95 var pg=document.getElementById("pg"); var clt=document.getElementById("clt"); var nx=document.getElementById("nx"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); startframe=((startframe!=null&&startframe>0)?startframe:0); enclen=0; for(i=0;i=0)enc[enclen++]=tmp; } for(i=enclen;i0){ for(j=0;j<4;j++)af[(e+1)*fldblks+ap[e*3+2]+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2+1]*10+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2]-11]=ap[e*3+0]; } // フィールドずらし消去 for(i=20,k=20;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(af[(e+1)*fldblks+k*10+j+fldblks-220]>0); if(chk<10){ for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+k*10+j+fldblks-220]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=0; // せり上がり if(au[e]){for(i=0;i<210;i++)af[(e+1)*fldblks+i+fldblks-220]=af[(e+1)*fldblks+i+10+fldblks-220];for(i=210;i<220;i++)af[(e+1)*fldblks+i+fldblks-220]=0;} // ミラー発動 if(am[e])for(i=0;i<21;i++)for(j=0;j<5;j++){tmp=af[(e+1)*fldblks+i*10+j+fldblks-220];af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+i*10+9-j+fldblks-220];af[(e+1)*fldblks+i*10+9-j+fldblks-220]=tmp;} // その他 } if(e>startframe){ framemax=e-1;frame=startframe; for(i=0;i=0&&af[i]<=8))af[i]=0;} if(mini!=2){ popframe(frame); clt.checked=ct; refreshPage(); refreshcolor(); out.className="theme5a"; updateflag=0; if(url!=null){url.value="";} if(submit!=null){submit.disabled=true;} if(view!=null){view.value="";} if(dump!=null){dump.value="";} if(viewjmp!=null){viewjmp.removeAttribute("href");} if(dumpjmp!=null){dumpjmp.removeAttribute("href");} } }else{ updateflag=0; newdata(startframe); } } function decode100(startframe){ // ☆ データ読み込み Ver 1.00 var pg=document.getElementById("pg"); var clt=document.getElementById("clt"); var nx=document.getElementById("nx"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); startframe=((startframe!=null&&startframe>0)?startframe:0); enclen=0; for(i=0;i=0)enc[enclen++]=tmp; } for(i=enclen;i0)?ac[e-1]:''; ad[e]=0; if(acflg){ tmp=enc[encc++]; tmp+=enc[encc++]*64; tmplen=(tmp%4096);tmp=Math.floor(tmp/4096); tmpstr=''; for(i=0;i0){ for(j=0;j<4;j++)af[(e+1)*fldblks+ap[e*3+2]+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2+1]*10+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2]-11]=ap[e*3+0]; } // フィールドずらし消去 for(i=20,k=20;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(af[(e+1)*fldblks+k*10+j+fldblks-220]>0); if(chk<10){ for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+k*10+j+fldblks-220]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=0; // せり上がり if(au[e]){for(i=0;i<210;i++)af[(e+1)*fldblks+i+fldblks-220]=af[(e+1)*fldblks+i+10+fldblks-220];for(i=210;i<220;i++)af[(e+1)*fldblks+i+fldblks-220]=0;} // ミラー発動 if(am[e])for(i=0;i<21;i++)for(j=0;j<5;j++){tmp=af[(e+1)*fldblks+i*10+j+fldblks-220];af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+i*10+9-j+fldblks-220];af[(e+1)*fldblks+i*10+9-j+fldblks-220]=tmp;} // その他 } if(e>startframe){ framemax=e-1;frame=startframe; for(i=0;i=0&&af[i]<=8))af[i]=0;} if(mini!=2){ popframe(frame); clt.checked=ct; refreshPage(); refreshcolor(); out.className="theme5a"; updateflag=0; if(url!=null){url.value="";} if(submit!=null){submit.disabled=true;} if(view!=null){view.value="";} if(dump!=null){dump.value="";} if(viewjmp!=null){viewjmp.removeAttribute("href");} if(dumpjmp!=null){dumpjmp.removeAttribute("href");} } }else{ updateflag=0; newdata(startframe); } } function decode105(startframe){ // ☆ データ読み込み Ver 1.05 var pg=document.getElementById("pg"); var clt=document.getElementById("clt"); var nx=document.getElementById("nx"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); startframe=((startframe!=null&&startframe>0)?startframe:0); enclen=0; for(i=0;i=0)enc[enclen++]=tmp; } for(i=enclen;i0)?ac[e-1]:''; ad[e]=tmp%2;tmp=Math.floor(tmp/2); // コメント入力 if(acflg){ tmp=enc[encc++]; tmp+=enc[encc++]*64; tmplen=(tmp%4096);tmp=Math.floor(tmp/4096); tmpstr=''; for(i=0;i0){ for(j=0;j<4;j++)af[(e+1)*fldblks+ap[e*3+2]+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2+1]*10+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2]-11]=ap[e*3+0]; } // フィールドずらし消去 for(i=20,k=20;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(af[(e+1)*fldblks+k*10+j+fldblks-220]>0); if(chk<10){ for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+k*10+j+fldblks-220]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=0; // せり上がり if(au[e]){for(i=0;i<210;i++)af[(e+1)*fldblks+i+fldblks-220]=af[(e+1)*fldblks+i+10+fldblks-220];for(i=210;i<220;i++)af[(e+1)*fldblks+i+fldblks-220]=0;} // ミラー発動 if(am[e])for(i=0;i<21;i++)for(j=0;j<5;j++){tmp=af[(e+1)*fldblks+i*10+j+fldblks-220];af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+i*10+9-j+fldblks-220];af[(e+1)*fldblks+i*10+9-j+fldblks-220]=tmp;} // その他 } } if(e>startframe){ framemax=e-1;frame=startframe; for(i=0;i=0&&af[i]<=8))af[i]=0;} if(mini!=2){ popframe(frame); clt.checked=ct; refreshPage(); refreshcolor(); out.className="theme5a"; updateflag=0; if(url!=null){url.value="";} if(submit!=null){submit.disabled=true;} if(view!=null){view.value="";} if(dump!=null){dump.value="";} if(viewjmp!=null){viewjmp.removeAttribute("href");} if(dumpjmp!=null){dumpjmp.removeAttribute("href");} } }else{ updateflag=0; newdata(startframe); } } function decode110(startframe){ // ☆ データ読み込み Ver 1.10 var pg=document.getElementById("pg"); var clt=document.getElementById("clt"); var nx=document.getElementById("nx"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); startframe=((startframe!=null&&startframe>0)?startframe:0); enclen=0; for(i=0;i=0)enc[enclen++]=tmp; } for(i=enclen;i0)?ac[e-1]:''; cmstrrep=ac[e]; refreshquiz(e,1,0,1,1); ac[e]=cmstrrep; ad[e]=tmp%2;tmp=Math.floor(tmp/2); // コメント入力 if(acflg){ tmp=enc[encc++]; tmp+=enc[encc++]*64; tmplen=(tmp%4096);tmp=Math.floor(tmp/4096); tmpstr=''; for(i=0;i0){ for(j=0;j<4;j++)af[(e+1)*fldblks+ap[e*3+2]+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2+1]*10+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2]-11]=ap[e*3+0]; } // フィールドずらし消去 for(i=20,k=20;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(af[(e+1)*fldblks+k*10+j+fldblks-220]>0); if(chk<10){ for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+k*10+j+fldblks-220]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j+fldblks-220]=0; // せり上がり if(au[e]){for(i=0;i<210;i++)af[(e+1)*fldblks+i+fldblks-220]=af[(e+1)*fldblks+i+10+fldblks-220];for(i=210;i<220;i++)af[(e+1)*fldblks+i+fldblks-220]=0;} // ミラー発動 if(am[e])for(i=0;i<21;i++)for(j=0;j<5;j++){tmp=af[(e+1)*fldblks+i*10+j+fldblks-220];af[(e+1)*fldblks+i*10+j+fldblks-220]=af[(e+1)*fldblks+i*10+9-j+fldblks-220];af[(e+1)*fldblks+i*10+9-j+fldblks-220]=tmp;} // その他 } } if(e>startframe){ framemax=e-1;frame=startframe; for(i=0;i=0&&af[i]<=8))af[i]=0;} if(mini!=2){ popframe(frame); clt.checked=ct; refreshPage(); refreshcolor(); out.className="theme5a"; updateflag=0; if(url!=null){url.value="";} if(submit!=null){submit.disabled=true;} if(view!=null){view.value="";} if(dump!=null){dump.value="";} if(viewjmp!=null){viewjmp.removeAttribute("href");} if(dumpjmp!=null){dumpjmp.removeAttribute("href");} } }else{ updateflag=0; newdata(startframe); } } function decode115(startframe){ // ☆ データ読み込み Ver 1.15 var pg=document.getElementById("pg"); var clt=document.getElementById("clt"); var nx=document.getElementById("nx"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); startframe=((startframe!=null&&startframe>0)?startframe:0); enclen=0; for(i=0;i=0)enc[enclen++]=tmp; } for(i=enclen;i0)?ac[e-1]:''; cmstrrep=ac[e]; refreshquiz(e,1,0,1,0); ac[e]=cmstrrep; ad[e]=tmp%2;tmp=Math.floor(tmp/2); // コメント入力 if(acflg){ tmp=enc[encc++]; tmp+=enc[encc++]*64; tmplen=(tmp%4096);tmp=Math.floor(tmp/4096); tmpstr=''; for(i=0;i0){ for(j=0;j<4;j++)af[(e+1)*fldblks+ap[e*3+2]+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2+1]*10+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2]-11]=ap[e*3+0]; } // フィールドずらし消去 for(i=fldlines-2,k=fldlines-2;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(af[(e+1)*fldblks+k*10+j]>0); if(chk<10){ for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j]=af[(e+1)*fldblks+k*10+j]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)af[(e+1)*fldblks+i*10+j]=0; // せり上がり if(au[e]){for(i=0;istartframe){ framemax=e-1;frame=startframe; for(i=0;i=0&&af[i]<=8))af[i]=0;} if(mini!=2){ popframe(frame); clt.checked=ct; refreshPage(); refreshcolor(); out.className="theme5a"; updateflag=0; if(url!=null){url.value="";} if(submit!=null){submit.disabled=true;} if(view!=null){view.value="";} if(dump!=null){dump.value="";} if(viewjmp!=null){viewjmp.removeAttribute("href");} if(dumpjmp!=null){dumpjmp.removeAttribute("href");} } }else{ updateflag=0; newdata(startframe); } } function newdata(startframe){ // * 新規作成 var clt=document.getElementById("clt"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); startframe=((startframe!=null&&startframe>0)?startframe:0); if(updateflag){ if(confirm(STRING_DESTROY_CONFIRM)!=1){ return; } } for(i=0;i0)?startframe:startframe+1; framemax=e-1;frame=framemax; if(mini!=2){ popframe(frame); clt.checked=ct; refreshPage(); refreshcolor(); out.className="theme5a"; updateflag=0; if(url!=null){url.value="";} if(submit!=null){submit.disabled=true;} if(view!=null){view.value="";} if(dump!=null){dump.value="";} if(viewjmp!=null){viewjmp.removeAttribute("href");} if(dumpjmp!=null){dumpjmp.removeAttribute("href");} } } function encode(focusset){ // ★ データ出力 var tx=document.getElementById("tx"); var out=document.getElementById("out"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); pushframe(frame); encc=0; fldrepaddr=-1; for(i=0;i=0)fldrepaddr=-1; } // タイプ,角度,座標出力 cmstrrep=(e>0)?ac[e-1]:''; refreshquiz(e,1,0,1,0); cmstrrep=escape(cmstrrep).substring(0,4095); tmpstr=escape(ac[e]).substring(0,4095); tmplen=tmpstr.length; if(tmplen>4095)tmplen=4095; tmp=ap[e*3+0]+8*(ap[e*3+1]+4*(ap[e*3+2]+fldblks*(au[e]+2*(am[e]+2*((e==0)*ct+2*((tmpstr!=cmstrrep)+2*ad[e])))))); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); // コメント出力 if(tmpstr!=cmstrrep){ tmp=tmplen; enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); for(i=0;i=0?ins:0)%96); tmp+=(((ins=asctbl.indexOf(tmpstr.charAt(i+1)))>=0?ins:0)%96)*96; tmp+=(((ins=asctbl.indexOf(tmpstr.charAt(i+2)))>=0?ins:0)%96)*9216; tmp+=(((ins=asctbl.indexOf(tmpstr.charAt(i+3)))>=0?ins:0)%96)*884736; enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); enc[encc++]=tmp%64;tmp=Math.floor(tmp/64); } } // フィールド記憶 for(j=0;j0){ for(j=0;j<4;j++)encf[ap[e*3+2]+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2+1]*10+b[ap[e*3+0]*32+ap[e*3+1]*8+j*2]-11]=ap[e*3+0]; } // フィールドずらし消去 for(i=fldlines-2,k=fldlines-2;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(encf[k*10+j]>0); if(chk<10){ for(j=0;j<10;j++)encf[i*10+j]=encf[k*10+j]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)encf[i*10+j]=0; // せり上がり if(au[e]){for(i=0;i0); if(focusset){ url.focus(); } } function pushframe(pfframe){ // 指定フレームへ転送 var up=document.getElementById("up"); var mr=document.getElementById("mr"); var cm=document.getElementById("cm"); var dc=document.getElementById("dc"); for(pfi=0;pfi0); for(pfi=0;pfi<4;pfi++){pcustom[pfi]=-1;} up.checked=au[pfframe]; mr.checked=am[pfframe]; cm.value=ac[pfframe];drawcm(0); dc.checked=!ad[pfframe]; } function main(){ // 初期設定 if(mini==2)return; var frow=document.getElementById("frow"); var clt=document.getElementById("clt"); var up=document.getElementById("up"); var mr=document.getElementById("mr"); var cm=document.getElementById("cm"); var dc=document.getElementById("dc"); var tx=document.getElementById("tx"); var kbd=document.getElementById("kbd"); var apb=document.getElementById("apb"); for(ii=0;ii=0)tx.value=location.search.substring(cmd+1);versioncheck(0); refreshcolor(); } function pgset(){ // ページ指定 var pgnm=document.getElementById("pgnm"); pgnum=pgnm.value-1; if(!(pgnum>=0))pgnum=0; if(!(pgnum<=framemax))pgnum=framemax; pgnm.value=""+(pgnum+1); pushframe(frame); frame=pgnum; popframe(frame); refreshPage(); refresh(); } function pgprev(pgtype){ // ▲ 前ページ var pg=document.getElementById("pg"); if(frame>0){ pushframe(frame); frame=frame-1; if(pgtype==2)frame=0; popframe(frame); refreshPage(); refresh(); } } function pgnext(pgtype){ // 次ページ ▼ var pp=document.getElementById("pp"); var up=document.getElementById("up"); var mr=document.getElementById("mr"); var dc=document.getElementById("dc"); var pg=document.getElementById("pg"); if(pgtype?(frameframemax){ // 新規フレーム処理 if(dc.checked){ // ミノ接着 // ブロック配置 if(p[0]>0){ for(i=0;i<4;i++)f[p[2]+b[p[0]*32+p[1]*8+i*2+1]*10+b[p[0]*32+p[1]*8+i*2]-11]=p[0]; p[0]=0;p[1]=0;p[2]=0;pp.checked=false;keybuttonenable(false); } // フィールドずらし消去 for(i=fldlines-2,k=fldlines-2;k>=0;k--){ chk=0;for(j=0;j<10;j++)chk+=(f[k*10+j]>0); if(chk<10){ for(j=0;j<10;j++)f[i*10+j]=f[k*10+j]; i--; } } for(;i>=0;i--)for(j=0;j<10;j++)f[i*10+j]=0; // 直後にせり上がり if(up.checked){for(i=0;i=1&&cpt<=7){ for(cpi=0;cpi<4;cpi++){ cptmp1=(cpid%10)+b[cpt*32+cpr*8+cpi*2]-1; cptmp2=Math.floor(cpid/10)+b[cpt*32+cpr*8+cpi*2+1]-1; if(cptmp1<0||cptmp1>9||cptmp2<0||cptmp2>fldlines-2||f[cpid+b[cpt*32+cpr*8+cpi*2+1]*10+b[cpt*32+cpr*8+cpi*2]-11]>0)cp++; } } return cp; } function drawpiece(){ // ピース表示 var fld=document.getElementsByName("fld"); var dc=document.getElementById("dc"); dpt=p[0];dpr=p[1]; if(dpt>=1&&dpt<=7){ if(kbfcs&&!dc.checked){ for(dpid=p[2]+10;dpid=0&&dpid=0&&dptmp1<=9&&dptmp2>=0&&dptmp2<=fldlines-2)fld[dptmp2*10+dptmp1].style.backgroundColor=c[ct*27+9]; } } } dpid=p[2]; for(dpi=0;dpi<4;dpi++){ dptmp1=(dpid%10)+b[dpt*32+dpr*8+dpi*2]-1; dptmp2=Math.floor(dpid/10)+b[dpt*32+dpr*8+dpi*2+1]-1; if(dptmp1>=0&&dptmp1<=9&&dptmp2>=0&&dptmp2<=fldlines-2)fld[dptmp2*10+dptmp1].style.backgroundColor=c[ct*27+dpt+9]; } } } function drawnext(){ // NEXTピース表示 var nxfld=document.getElementsByName("nxfld"); var nx2fld=document.getElementsByName("nx2fld"); dnj=frame+1; for(dnk=0;dnk<2;dnk++){ for(;dnj<=framemax;dnj++)if(ap[dnj*3]>0&&(ap[(dnj-1)*3]==0||!ad[dnj-1])){ dnt=ap[dnj*3]; dnid=(ct&&(dnt==2||dnt==5||dnt==6))*10;dnr=ct*2; if(dnt>=1&&dnt<=7){ for(dni=0;dni<4;dni++){ dntmp1=(dnid%10)+b[dnt*32+dnr*8+dni*2]; dntmp2=Math.floor(dnid/10)+b[dnt*32+dnr*8+dni*2+1]-1; if(dnk==0){ if(dntmp1>=0&&dntmp1<=3&&dntmp2>=0&&dntmp2<=1)nxfld[dntmp2*4+dntmp1].style.backgroundColor=c[ct*27+(ap[(frame+1)*3]>0&&(ap[(frame)*3]==0||!ad[frame]))*9+dnt]; }else if(dnk==1){ if(dntmp1>=0&&dntmp1<=3&&dntmp2>=0&&dntmp2<=1)nx2fld[dntmp2*6+dntmp1+1].style.backgroundColor=c[ct*27+(ap[(frame+1)*3]>0&&(ap[(frame)*3]==0||!ad[frame]))*9+dnt]; } } } dnj++; break; } } } function drawquiznext(){ // クイズ用NEXTピース表示 var hlfld=document.getElementsByName("hlfld"); var nxfld=document.getElementsByName("nxfld"); var nx2fld=document.getElementsByName("nx2fld"); nohld=(p[0]==quizcur+1||p[0]!=quiznx[0]+1); quizcurhld=quizhld<0?(nohld?-1:quizcur):(p[0]!=quizhld+1)?quizhld:quizcur; for(dnk=0;dnk<3;dnk++){ dqnx=dnk+(quizhld<0&&!nohld)-(p[0]<=0); if((dnk<2?(dqnx>=0?quiznx[dqnx]:quizcur):quizcurhld)>=0){ dnt=(dnk<2?(dqnx>=0?quiznx[dqnx]:quizcur):quizcurhld)+1; dnid=(ct&&(dnt==2||dnt==5||dnt==6))*10;dnr=ct*2; if(dnt>=1&&dnt<=7){ for(dni=0;dni<4;dni++){ dntmp1=(dnid%10)+b[dnt*32+dnr*8+dni*2]; dntmp2=Math.floor(dnid/10)+b[dnt*32+dnr*8+dni*2+1]-1; if(dnk==0){ if(dntmp1>=0&&dntmp1<=3&&dntmp2>=0&&dntmp2<=1)nxfld[dntmp2*4+dntmp1].style.backgroundColor=c[ct*27+9+dnt]; }else if(dnk==1){ if(dntmp1>=0&&dntmp1<=3&&dntmp2>=0&&dntmp2<=1)nx2fld[dntmp2*6+dntmp1+1].style.backgroundColor=c[ct*27+9+dnt]; }else if(dnk==2){ if(dntmp1>=0&&dntmp1<=3&&dntmp2>=0&&dntmp2<=1)hlfld[dntmp2*6+dntmp1+1].style.backgroundColor=c[ct*27+9+dnt]; } } } } } } function makerandomquiz(){ // ランダムクイズ生成 var cm=document.getElementById("cm"); cmstr=quiztbl.substring(0,7); for(i=0;i<7;i++){ cmrnd=Math.floor(Math.random()*(7-i)); cmstr=cmstr.substring(0,i) +cmstr.substring(i+cmrnd,i+cmrnd+1) +cmstr.substring(i,i+cmrnd) +cmstr.substring(i+cmrnd+1) ; } if(cm.value.substring(0,3)=='#Q='){ qinstr=cm.value.indexOf(';'); if(qinstr<0){ cm.value=cm.value+cmstr; }else{ cm.value=cm.value.substr(0,qinstr)+cmstr+cm.value.substr(qinstr); } }else{ cmstr='[]('+cmstr.substring(0,1)+')'+cmstr.substring(1); if(cm.value==''){ cm.value='#Q='+cmstr; }else{ cm.value='#Q='+cmstr+';'+cm.value; } } drawcm(0); updated(); refresh(); } function drawcm(newpage){ // コメント表示 var cm=document.getElementById("cm"); refreshquiz(frame,newpage,1,1,0); if(cm.value==''||frame>0&&cm.value==ac[frame-1]){ cm.className="theme4a"; }else{ cm.className="theme4b"; } cmstr=cm.value; if(cmstr){ if(cmstr.substring(0,3)=='#Q='){ qinstr=cmstr.indexOf(';'); if(qinstr>=0){ cmstr=cmstr.substring(qinstr+1); }else{ cmstr=''; } } } if(cmstr){ cmstr=cmstr.substring(0,200); document.title=cmstr+' - '+titorg; }else{ document.title=titorg; } } function refreshquiz(rqframe,newpage,gui,radioupdate,before115){ // クイズ var qfld=document.getElementById("qfld"); var cm=document.getElementById("cm"); var mode=document.getElementsByName("mode"); var dc=document.getElementById("dc"); cmstr=gui?cm.value:cmstrrep; if(cmstr.substring(0,3)=='#Q='){ quiz=1; quizcur=-1; quizhld=-1; quiznx[0]=-1; quiznx[1]=-1; quiznx[2]=-1; quizcm=""; qstr=""; qlen=cmstr.length; for(i=3;i=0){qstr+=qca;} } qlen=qstr.length; qinstr1=qstr.indexOf('('); qinstr2=qstr.indexOf(')'); if(qinstr1>=0&&qinstr2==qinstr1+2){ quizcur=quiztbl.indexOf(qstr.charAt(qinstr1+1)); if(quizcur<0||quizcur>6){ quizcur=-1; }else{ qstr=qstr.substring(0,qinstr1)+qstr.substring(qinstr2); } } qinstr1=qstr.indexOf('['); qinstr2=qstr.indexOf(']'); if(qinstr1>=0&&qinstr2==qinstr1+2){ quizhld=quiztbl.indexOf(qstr.charAt(qinstr1+1)); if(quizhld<0||quizhld>6){ quizhld=-1; }else{ qstr=qstr.substring(0,qinstr1)+qstr.substring(qinstr2); } } qnxstr=""; for(i=0;i=0&&ap[(rqframe-1)*3]-1==quizhld){ quizhld=quizcur; quizcur=quiznx[0]; quiznx[0]=quiznx[1]; quiznx[1]=quiznx[2]; qnxstr=qnxstr.substring(1); }else if(quizhld<0&&ap[(rqframe-1)*3]-1==quiznx[0]){ quizhld=quizcur; quizcur=quiznx[1]; qnxstr=qnxstr.substring(2); } if(!before115&&quizhld>=0&&quizcur<0){ quiztmp=quizcur; quizcur=quizhld; quizhld=quiztmp; } if(quizcur>=0){ cmstr='#Q=['+quiztbl.charAt(quizhld)+']('+quiztbl.charAt(quizcur)+')'+qnxstr+quizcm; if(gui){ cm.value=cmstr; }else{ cmstrrep=cmstr; } }else{ cmstr=''+quizcm.substring(1); if(gui){ cm.value=cmstr; }else{ cmstrrep=cmstr; } quiz=0; quizcur=-1; quizhld=-1; quiznx[0]=-1; quiznx[1]=-1; quiznx[2]=-1; } refreshquiz(rqframe,0,gui,radioupdate,before115); gui=0; } if(gui){ for(j=0;j<7;j++){ for(i=0;i<4;i++){ mode[8+j*4+i].disabled=(!quiz||j==quizcur||j==(quizhld>=0?quizhld:quiznx[0]))?false:true; } } if(radioupdate&&!ad[rqframe-1]){ if(quizcur>=0){ mode[8+quizcur*4+ct*2].checked=true; }else if(quizhld>=0){ mode[8+quizhld*4+ct*2].checked=true; }else{ mode[36].checked=true; } } for(i=0;i<86;i++){qf[i]="#000000";} if(quizhld>=0){ dnt=quizhld+1; dnid=(ct&&(dnt==2||dnt==5||dnt==6));dnr=ct*2; for(i=0;i<4;i++){ qf[(b[dnt*32+dnr*8+i*2+1]+dnid-1)*43+b[dnt*32+dnr*8+i*2]+0]=c[0+ct*27+dnt]; } } if(quizcur>=0){ dnt=quizcur+1; dnid=(ct&&(dnt==2||dnt==5||dnt==6));dnr=ct*2; for(i=0;i<4;i++){ qf[(b[dnt*32+dnr*8+i*2+1]+dnid-1)*43+b[dnt*32+dnr*8+i*2]+7]=c[9+ct*27+dnt]; } } for(j=0;j<6;j++){ qca=qnxstr.charAt(j); qnx=quiztbl.indexOf(qca); if(qca!=''&&qnx>=0){ dnt=qnx+1; dnid=(ct&&(dnt==2||dnt==5||dnt==6));dnr=ct*2; for(i=0;i<4;i++){ qf[(b[dnt*32+dnr*8+i*2+1]+dnid-1)*43+b[dnt*32+dnr*8+i*2]+14+j*5]=c[0+ct*27+dnt]; } } } qfstr=""; qfstr+='
'; qfstr+=''; for(j=0;j<2;j++){ qfstr+=''; for(i=0;i<43;i++){ qfstr+=''; } qfstr+=''; } qfstr+='
'; qfstr+='
'; if(qfld!=null){qfld.innerHTML=qfstr;} } }else{ quiz=0; quizcur=-1; quizhld=-1; quiznx[0]=-1; quiznx[1]=-1; quiznx[2]=-1; if(gui){ for(j=0;j<7;j++){ for(i=0;i<4;i++){ mode[8+j*4+i].disabled=false; } } qfstr=""; qfstr+='
'; qfstr+='
'; if(qfld!=null){qfld.innerHTML=qfstr;} } } keybuttonenable(p[0]>0); } function refresh(){ // リフレッシュ var fld=document.getElementsByName("fld"); var hlfld=document.getElementsByName("hlfld"); var nxfld=document.getElementsByName("nxfld"); var nx2fld=document.getElementsByName("nx2fld"); var pcl=document.getElementsByName("pcl"); var dc=document.getElementById("dc"); var pg=document.getElementById("pg"); dcch=dc.checked; for(rfj=0;rfj0){ for(rfk=0;rfk<4;rfk++){ if(p[2]+b[p[0]*32+p[1]*8+rfk*2+1]*10+b[p[0]*32+p[1]*8+rfk*2]-11==rfji)rfc++; } } } } for(rfi=0;rfi<10;rfi++){ // 表示 rfji=rfj+rfi; fld[rfji].style.backgroundColor=c[ct*27+f[rfji]+(rfc==10&&f[rfji]>0)*18+(rfji=0)fld[pcustom[rfi]].style.backgroundColor="#ffffff"; for(rfj=0;rfj<2;rfj++)for(rfi=0;rfi<4;rfi++)hlfld[rfj*6+rfi+1].style.backgroundColor=c[ct*27]; for(rfj=0;rfj<2;rfj++)for(rfi=0;rfi<4;rfi++)nxfld[rfj*4+rfi].style.backgroundColor=c[ct*27]; for(rfj=0;rfj<2;rfj++)for(rfi=0;rfi<4;rfi++)nx2fld[rfj*6+rfi+1].style.backgroundColor=c[ct*27]; for(rfj=0;rfj<7;rfj++){ for(rfi=0;rfi<4;rfi++){ pcl[rfj*4+rfi].style.backgroundColor=c[ct*27+10+rfj+((rfj==p[0]-1&&rfi==p[1])?-9:(rfi==ct*2)?9:0)]; } } if(quiz){ drawquiznext(); }else{ drawnext(); } } function refreshcolor(){ // 色変更リフレッシュ var fcl=document.getElementsByName("fcl"); var spfld=document.getElementsByName("spfld"); refresh(); for(rfi=1;rfi<9;rfi++)fcl[rfi-1].style.backgroundColor=c[ct*27+rfi]; for(i=0;i<56;i++){spf[i]="";} for(j=0;j<7;j++){ dnt=j+1; dnid=(ct&&(dnt==2||dnt==5||dnt==6));dnr=ct*2; for(i=0;i<4;i++){ spf[j*8+(b[dnt*32+dnr*8+i*2+1]+dnid-1)*4+b[dnt*32+dnr*8+i*2]]=c[18+ct*27+dnt]; } } for(i=0;i<56;i++){ if(spfld[i]!=null){spfld[i].style.backgroundColor=spf[i];} } } function refreshPage(){ // ページ番号リフレッシュ var rqz=document.getElementById("rqz"); var pgnm=document.getElementById("pgnm"); var pg=document.getElementById("pg"); var prev=document.getElementById("prev"); var nx=document.getElementById("nx"); var first=document.getElementById("first"); var last=document.getElementById("last"); var del=document.getElementById("del"); pgnm.value=""+(frame+1); pg.innerHTML="/"+(framemax+1); rqz.disabled=(frame=framelim-1&&frame>=framemax); last.disabled=(frame>=framemax); del.disabled=(frame>=framemax); keybuttonenable(p[0]>0); } function updated(){ // データ更新時 var out=document.getElementById("out"); var aout=document.getElementById("aout"); var url=document.getElementById("url"); var submit=document.getElementById("submit"); var view=document.getElementById("view"); var dump=document.getElementById("dump"); var viewjmp=document.getElementById("viewjmp"); var dumpjmp=document.getElementById("dumpjmp"); updateflag=1; if(aout.checked){ encode(0); }else{ out.className="theme5b"; url.value=""; if(submit!=null){submit.disabled=true;} view.value=""; dump.value=""; viewjmp.removeAttribute("href"); dumpjmp.removeAttribute("href"); } } function shiftfield(r){ // フィールドシフト var dc=document.getElementById("dc"); var pp=document.getElementById("pp"); if(r==0){ // 上シフト for(i=0;i0)p[2]-=10; for(i=0;i<4;i++){ if(pcustom[i]>=0){ pcustom[i]-=10; if(pcustom[i]<0){pcustom[i]=-1;} } } }else if(r==1){ // 左シフト for(i=0;i0){p[2]--;if(p[2]<0||p[2]%10==9){p[0]=0;p[1]=0;p[2]=0;pp.checked=false;keybuttonenable(false);}} for(i=0;i<4;i++){ if(pcustom[i]>=0){ pcustom[i]--; if(pcustom[i]<0||pcustom[i]%10==9){pcustom[i]=-1;} } } }else if(r==2){ // 右シフト for(i=fldblks-11;i>=1;i--)f[i]=f[i-1]; for(i=0;i0){p[2]++;if(p[2]>fldblks-11||p[2]%10==0){p[0]=0;p[1]=0;p[2]=0;pp.checked=false;keybuttonenable(false);}} for(i=0;i<4;i++){ if(pcustom[i]>=0){ pcustom[i]++; if(pcustom[i]>fldblks-11||pcustom[i]%10==0){pcustom[i]=-1;} } } }else if(r==3){ // 下シフト for(i=fldblks-11;i>=10;i--)f[i]=f[i-10]; for(i=0;i<10;i++)f[i]=0; if(p[0]>0)p[2]+=10; for(i=0;i<4;i++){ if(pcustom[i]>=0){ pcustom[i]+=10; if(pcustom[i]>fldblks-11){pcustom[i]=-1;} } } } if(p[0]>0){ for(i=1;dc.checked&&i1&&i1){if(i=0&&md<=7){ // フィールド作成 if(eventbutton==1){ // 左クリック if(down){ if(frow.checked){ idm=id-(id%10); idc=0; for(j=0;j<10;j++){ idc+=(f[idm+j]==md+1); } fe=9+(idc<9||f[id]!=0)*(md+1); }else{ fe=9+(f[id]!=md+1)*(md+1); } } if(fe>=9&&fe<=17){ if(frow.checked){ idm=id-(id%10); for(j=0;j<10;j++){ f[idm+j]=(id%10==j)?0:(fe-9); fld[idm+j].style.backgroundColor=c[ct*27+f[idm+j]]; } }else{ f[id]=fe-9; fld[id].style.backgroundColor=c[ct*27+f[id]]; } updated(); } } } if(eventbutton==1){ cm.focus(); if(md>=0)mode[md].focus(); } } function drawfield(id,down){ // フィールド処理 var mode=document.getElementsByName("mode"); var fld=document.getElementsByName("fld"); var frow=document.getElementById("frow"); var cm=document.getElementById("cm"); var dc=document.getElementById("dc"); var pp=document.getElementById("pp"); md=-1; for(i=0;i=0)fld[pcustom[i]].style.backgroundColor="#ffffff"; if(md>=0&&md<=7){ // フィールド作成 if(eventbutton==1){ // 左クリック if(down){ if(frow.checked){ idm=id-(id%10); idc=0; for(j=0;j<10;j++){ idc+=(f[idm+j]==md+1); } fe=(idc<9||f[id]!=0)*(md+1); }else{ fe=(f[id]!=md+1)*(md+1); } } if(fe>=0&&fe<=8){ for(i=0;i<4;i++){ if(frow.checked){ if(pcustom[i]-(pcustom[i]%10)==id-(id%10)){pcustom[i]=-1;} } else { if(pcustom[i]==id){pcustom[i]=-1;} } } mclx=mcx;mcly=mcy; mcx=id%10; mcy=Math.floor(id/10); if(!mcap){mcap=1;mclx=mcx;mcly=mcy;} if(Math.abs(mclx-mcx)>Math.abs(mcly-mcy)){ mcdx=(mcx=mcx||(mcdx>0)&&mclx<=mcx;mclx+=mcdx,mcly+=mcdy){ mcid=Math.floor(mcly+0.5)*10+mclx; if(frow.checked){ mcidm=mcid-(mcid%10); for(j=0;j<10;j++){ f[mcidm+j]=(mcid%10==j)?0:fe; fld[mcidm+j].style.backgroundColor=c[ct*27+f[mcidm+j]+(mcidm+j=mcy||(mcdy>0)&&mcly<=mcy;mclx+=mcdx,mcly+=mcdy){ mcid=mcly*10+Math.floor(mclx+0.5); if(frow.checked){ mcidm=mcid-(mcid%10); for(j=0;j<10;j++){ f[mcidm+j]=(mcid%10==j)?0:fe; fld[mcidm+j].style.backgroundColor=c[ct*27+f[mcidm+j]+(mcidm+j0){ for(i=1;dc.checked&&i1&&i1){if(i=8&&md<=35){ // ピース配置 t=Math.floor((md-8)/4)+1;r=(md-8)%4; if(eventbutton!=1){ // 移動中 for(i=0;i<4;i++){ tmp1=(id%10)+b[t*32+r*8+i*2]-1; tmp2=Math.floor(id/10)+b[t*32+r*8+i*2+1]-1; if(tmp1>=0&&tmp1<=9&&tmp2>=0&&tmp2<=fldlines-2){ tf[i]=tmp2*10+tmp1; }else{ tf[i]=-1; } } }else{ // 左クリック(ピース設置) for(i=0;dc.checked&&i0&&i=0&&i=0){ pcc++; if(pcx<0||pcustom[i]%100&&pcmi=0&&pcmi=0)fld[tf[i]].style.backgroundColor=c[ct*27+t+9]; } if(eventbutton==1){ cm.focus(); if(md>=0)mode[md].focus(); } } function kmove(mov){ // 横移動 if(p[0]<=0){ksetup(kbfcs,false);return;} if(p[0]>0&&(mov==-1||mov==1)){ rtx=p[2]%10+mov; rty=Math.floor(p[2]/10); if(rtx>=0&&rtx<=9&&rty>=0&&rty<=fldlines-1&&!checkpiece(p[0],p[1],rty*10+rtx)){ p[2]+=mov; shiftfield(-1); } } } function ksetup(kskbfcs,ksdc){ // 出現位置 var kbd=document.getElementById("kbd"); var dc=document.getElementById("dc"); var pp=document.getElementById("pp"); if(quiz&&quizcur>=0){ for(ksi=0;ksi<4;ksi++){pcustom[ksi]=-1;} dc.checked=ksdc; p[0]=quizcur+1; p[1]=ct*2; p[2]=14; pp.checked=true; keybuttonenable(true); if(kskbfcs)kbd.focus(); keybuttontext(kskbfcs); shiftfield(-1); } } function kdrop(dwn){ // 落下 var kbd=document.getElementById("kbd"); var dc=document.getElementById("dc"); var pp=document.getElementById("pp"); if(p[0]<=0){ksetup(kbfcs,false);return;} if(p[0]>0&&(dwn==-1||dwn==1)){ kdbottom=false; rtx=p[2]%10; rty=Math.floor(p[2]/10)+dwn; if(dwn>0){ if(rtx>=0&&rtx<=9&&rty>=0&&rty<=fldlines-1&&!checkpiece(p[0],p[1],rty*10+rtx)){ p[2]+=dwn*10; shiftfield(-1); }else{ kdbottom=true; } } if(!ct&&dwn<=0){ dctmp=dc.checked; dc.checked=true; shiftfield(-1); dc.checked=dctmp; } if(!ct&&kdbottom||ct&&dwn<=0){ dctmp=dc.checked; dc.checked=true; shiftfield(-1); if(frame>=framemax){ kbfcstmp=kbfcs; pgnext(0); ksetup(kbfcstmp,dctmp); } } } } function krot(rot){ // 回転 if(p[0]<=0){ksetup(kbfcs,false);return;} if(p[0]>0&&(rot==-1||rot==1)){ rtp=(rot<0); for(rti=0;rti<(ct?5:1);rti++){ rtb1=(p[0]-1)*16+p[1]*4+rtp*2; rtb2=(p[0]>1)*80+p[1]*20+rtp*10; rtxorg=p[2]%10; rtyorg=Math.floor(p[2]/10); rtx=rtxorg+rtta[ct*112+rtb1+0]+rttb[rtb2+rti*2+0]; rty=rtyorg+rtta[ct*112+rtb1+1]+rttb[rtb2+rti*2+1]; if(rtx>=0&&rtx<=9&&rty>=0&&rty<=fldlines-1&&!checkpiece(p[0],(p[1]+rot+4)%4,rty*10+rtx)){ p[1]=(p[1]+rot+4)%4; p[2]=rty*10+rtx; shiftfield(-1); break; } if(!ct){ if(p[0]==1){ if(p[1]==0||p[1]==2){ if(!(rtxorg>=0&&rtxorg<=9&&rtyorg>=0&&rtyorg<=fldlines-1&&!checkpiece(p[0],p[1],(rtyorg+1)*10+rtxorg))){ for(rtj=1;rtj<=2;rtj++){ if(rtx>=0&&rtx<=9&&(rty-rtj)>=0&&(rty-rtj)<=fldlines-1&&!checkpiece(p[0],(p[1]+rot+4)%4,(rty-rtj)*10+rtx)){ p[1]=(p[1]+rot+4)%4; p[2]=(rty-rtj)*10+rtx; shiftfield(-1); return; } } } } if(p[1]==1||p[1]==3){ for(rtj=1;rtj<=1;rtj++){ if((rtx-rtj)>=0&&rtx<=9&&rty>=0&&rty<=fldlines-1&&!checkpiece(p[0],(p[1]+rot+4)%4,rty*10+(rtx-rtj))){ p[1]=(p[1]+rot+4)%4; p[2]=rty*10+(rtx-rtj); shiftfield(-1); return; } } for(rtj=1;rtj<=2;rtj++){ if((rtx+rtj)>=0&&rtx<=9&&rty>=0&&rty<=fldlines-1&&!checkpiece(p[0],(p[1]+rot+4)%4,rty*10+(rtx+rtj))){ p[1]=(p[1]+rot+4)%4; p[2]=rty*10+(rtx+rtj); shiftfield(-1); return; } } } } if(p[0]==2||p[0]==4||p[0]==5||p[0]==6||p[0]==7){ rtcenter=0; for(rtj=-1;rtj<=1;rtj++){ if(rtx>=0&&rtx<=9&&(rty+rtj)>=0&&(rty+rtj)<=fldlines-1&&f[(rty+rtj)*10+rtx]>0)rtcenter=1; } if((p[0]==2&&p[1]==0||p[0]==6&&p[1]==2)&&(rtx+1)>=0&&(rtx+1)<=9&&(rty-1)>=0&&(rty-1)<=fldlines-1&&f[(rty-1)*10+(rtx+1)]>0)rtcenter=0; if((p[0]==2&&p[1]==2||p[0]==6&&p[1]==0)&&(rtx-1)>=0&&(rtx-1)<=9&&(rty-1)>=0&&(rty-1)<=fldlines-1&&f[(rty-1)*10+(rtx-1)]>0)rtcenter=0; if(p[1]==1||p[1]==3||!rtcenter){ for(rtj=1;rtj>=-1;rtj-=2){ if((rtx+rtj)>=0&&rtx<=9&&rty>=0&&rty<=fldlines-1&&!checkpiece(p[0],(p[1]+rot+4)%4,rty*10+(rtx+rtj))){ p[1]=(p[1]+rot+4)%4; p[2]=rty*10+(rtx+rtj); shiftfield(-1); return; } } } } if(p[0]==5){ if((p[1]+rot+4)%4==2){ for(rtj=1;rtj<=1;rtj++){ if(rtx>=0&&rtx<=9&&(rty-rtj)>=0&&(rty-rtj)<=fldlines-1&&!checkpiece(p[0],(p[1]+rot+4)%4,(rty-rtj)*10+rtx)){ p[1]=(p[1]+rot+4)%4; p[2]=(rty-rtj)*10+rtx; shiftfield(-1); return; } } } } } } } } function khold() // 入れ替え { var pp=document.getElementById("pp"); if(p[0]<=0){ksetup(kbfcs,false);return;} khtmp=(quizhld>=0?quizhld:quiznx[0]); if(p[0]>0&&khtmp>=0&&p[0]!=khtmp+1){ p[0]=khtmp+1; p[1]=ct*2; p[2]=14; pp.checked=true; shiftfield(-1); } } function keyevent() // キーボードイベント { var kbd=document.getElementById("kbd"); kbdval=kbd.value; while(!kbd.disabled&&kbdval.length>0){ kbdchr=kbdval.substring(0,1); if("Ss4".indexOf(kbdchr)>=0)kmove(-1); if("Dd2".indexOf(kbdchr)>=0)kdrop(1); if("Ee8 ".indexOf(kbdchr)>=0)kdrop(-1); if("Ff6".indexOf(kbdchr)>=0)kmove(1); if("ZzJj37".indexOf(kbdchr)>=0)krot(1); if("XxKk159".indexOf(kbdchr)>=0)krot(-1); if("CcLl0".indexOf(kbdchr)>=0)khold(); if("VvAa".indexOf(kbdchr)>=0)pgprev(0); if("Bb;".indexOf(kbdchr)>=0)pgnext(0); kbdval=kbdval.substring(1); } kbd.value=kbdval } function keybuttontext(fcs){ // キーボタン文字 var kml=document.getElementById("kml"); var kmd=document.getElementById("kmd"); var kmu=document.getElementById("kmu"); var kmr=document.getElementById("kmr"); var krl=document.getElementById("krl"); var krr=document.getElementById("krr"); var khd=document.getElementById("khd"); var prev=document.getElementById("prev"); var nx=document.getElementById("nx"); kbfcs=fcs; if(!mini){ kml.value=fcs?"4":"<"; kmd.value=fcs?"2":"v"; kmu.value=fcs?"8":"^"; kmr.value=fcs?"6":">"; krl.value=fcs?"Z":"("; krr.value=fcs?"X":")"; khd.value=fcs?"C":"~"; if(STRING_FRAME_PREVIOUS.substring(1,2)==" "){ prev.value=fcs?("V"+STRING_FRAME_PREVIOUS.substring(1)):STRING_FRAME_PREVIOUS; } if(STRING_FRAME_NEXT.substring(1,2)==" "){ nx.value=fcs?("B"+STRING_FRAME_NEXT.substring(1)):STRING_FRAME_NEXT; } } if(p[0]<=0)ksetup(fcs,false); } function keybuttonenable(enb){ // キーボタン無効 var kml=document.getElementById("kml"); var kmd=document.getElementById("kmd"); var kmu=document.getElementById("kmu"); var kmr=document.getElementById("kmr"); var krl=document.getElementById("krl"); var krr=document.getElementById("krr"); var khd=document.getElementById("khd"); var kbd=document.getElementById("kbd"); if(quiz)enb=true; if(!enb)keybuttontext(false); if(kml!=null)kml.disabled=!enb; if(kmd!=null)kmd.disabled=!enb; if(kmu!=null)kmu.disabled=!enb; if(kmr!=null)kmr.disabled=!enb; if(krl!=null)krl.disabled=!enb; if(krr!=null)krr.disabled=!enb; if(khd!=null)khd.disabled=!enb; if(kbd!=null)kbd.disabled=!enb; } function previewpiece(id,t,r){ // ピースプレビュー表示 var fld=document.getElementsByName("fld"); var mode=document.getElementsByName("mode"); md=-1; for(i=0;i=0)fld[pcustom[i]].style.backgroundColor="#ffffff"; for(i=0;i<4;i++){ tmp1=(id%10)+b[t*32+r*8+i*2]-1; tmp2=Math.floor(id/10)+b[t*32+r*8+i*2+1]-1; if(tmp1>=0&&tmp1<=9&&tmp2>=0&&tmp2<=fldlines-2){ fld[tmp2*10+tmp1].style.backgroundColor=c[ct*27+t+9];tf[i]=tmp2*10+tmp1; }else{ tf[i]=-1; } } } // -->
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/