asdf 完成品(IE対応)MAP拡大版
<body bgcolor=black text=white onKeyDown="K=event.keyCode-37">
<style type="text/css"><!--tt{font-family:"MS ゴシック";}--></style><tt id=F><script>
function R(H){while(D.all["F"+(S=MX*2+Math.ceil(ccc(i)*((MY*MX)-(MX*4))))].innerHTML!=C);I(S,H)}
function I(T,H){D.all["F"+T].innerHTML=H}
function ccc(cc){j=j+1;a=Math.sin((cc+0.1+j/100)/24);a=""+a;b=a.slice(-8,-2);a=eval(b)/1000000;return a}
function Y(){if(K<-1 || K>3){K=-1;}
if(K+1){M=[-1,0,1,0][K];}Z=P;P=P+M;
X=D.all["F"+P].innerHTML;P2=P+MX;XX=D.all["F"+P2].innerHTML;X1=X.slice(-8,-7);XX1=XX.slice(-8,-7);
if((XX1==C || XX1=="") && M==0){P=P+MX;}
if(X1==O1 || XX1==O1){alert("GAME OVER");return}
if(X1==T1 || XX1==T1){KY=1;Q="<font color=\"Purple\">●</font>";P=P+MX;}
if(X1==U1 || XX1==U1){if(KY==1){SC++;YY();}else{P=P-MX;}}
if(X1==W1){P=P-M;}
if(X1==N1 || XX1==N1){P=P-(MX*10);while(P<0){P=P+MX;}
while(C!=D.all["F"+P].innerHTML){P=P-MX;} }
I((MX*MY+1),"STAGE: "+SC);I(Z,C);I(P,Q);K=-1;M=0;ID=setTimeout(Y,100); }
function YY(){D=document;M=0;P=(MX*(MY-1))-(MX/2);S="";K=-1;P2=0;C=" ";
G="<font color=\"";H="</font>";U1="門";U=G+"Lime\">"+U1+H;Q=G+"blue\">●"+H;
W1="■";W=G+"Maroon\">"+W1+H;N1="=";N=G+"aqua\">"+N1+H;
O1="*";O=G+"white\">"+O1+H;T1="ー";T=G+"yellow\">"+T1+H;
E="<INPUT TYPE=\"submit\" VALUE=\"☆\" ONCLICK=\"clearTimeout(ID);YYY()\">";
for(i=0;i<(MX*MY+2);i++)
S+=(i%MX?"":"<br>")+"<span id=F"+i+">"+((i+1)%MX>1&&i<((MX*MY)-MX-1)?C:W)+"</span>";I("",S);
for(i=0;i<201;i++)I(MX+Math.ceil(ccc(i)*(MX*(MY-3))),W);for(i=0;i<41;i++)R(N);I(MX*MY,E);
for(i=0;i<(1+SC*4);i++)R(O);for(i=0;i<2;i++)I(Math.ceil((MX*(MY-2))+ccc(i)*(MX-2)),N);R(U);R(T);KY=0; }
function YYY(){MX=50;MY=40;j=0;SC=1;YY();Y();}
YYY();</script>
使用変数
<body bgcolor=black text=white onKeyDown="K=event.keyCode-37">
<style type="text/css"><!--tt{font-family:"MS ゴシック";}--></style><tt id=F><script>
function R(H){while(D.all["F"+(S=MX*2+Math.ceil(ccc(i)*((MY*MX)-(MX*4))))].innerHTML!=C);I(S,H)}
function I(T,H){D.all["F"+T].innerHTML=H}
function ccc(cc){j=j+1;a=Math.sin((cc+0.1+j/100)/24);a=""+a;b=a.slice(-8,-2);a=eval(b)/1000000;return a}
function Y(){if(K<-1 || K>3){K=-1;}
if(K+1){M=[-1,0,1,0][K];}Z=P;P=P+M;
X=D.all["F"+P].innerHTML;P2=P+MX;XX=D.all["F"+P2].innerHTML;X1=X.slice(-8,-7);XX1=XX.slice(-8,-7);
if((XX1==C || XX1=="") && M==0){P=P+MX;}
if(X1==O1 || XX1==O1){alert("GAME OVER");return}
if(X1==T1 || XX1==T1){KY=1;Q="<font color=\"Purple\">●</font>";P=P+MX;}
if(X1==U1 || XX1==U1){if(KY==1){SC++;YY();}else{P=P-MX;}}
if(X1==W1){P=P-M;}
if(X1==N1 || XX1==N1){P=P-(MX*10);while(P<0){P=P+MX;}
while(C!=D.all["F"+P].innerHTML){P=P-MX;} }
I((MX*MY+1),"STAGE: "+SC);I(Z,C);I(P,Q);K=-1;M=0;ID=setTimeout(Y,100); }
function YY(){D=document;M=0;P=(MX*(MY-1))-(MX/2);S="";K=-1;P2=0;C=" ";
G="<font color=\"";H="</font>";U1="門";U=G+"Lime\">"+U1+H;Q=G+"blue\">●"+H;
W1="■";W=G+"Maroon\">"+W1+H;N1="=";N=G+"aqua\">"+N1+H;
O1="*";O=G+"white\">"+O1+H;T1="ー";T=G+"yellow\">"+T1+H;
E="<INPUT TYPE=\"submit\" VALUE=\"☆\" ONCLICK=\"clearTimeout(ID);YYY()\">";
for(i=0;i<(MX*MY+2);i++)
S+=(i%MX?"":"<br>")+"<span id=F"+i+">"+((i+1)%MX>1&&i<((MX*MY)-MX-1)?C:W)+"</span>";I("",S);
for(i=0;i<201;i++)I(MX+Math.ceil(ccc(i)*(MX*(MY-3))),W);for(i=0;i<41;i++)R(N);I(MX*MY,E);
for(i=0;i<(1+SC*4);i++)R(O);for(i=0;i<2;i++)I(Math.ceil((MX*(MY-2))+ccc(i)*(MX-2)),N);R(U);R(T);KY=0; }
function YYY(){MX=50;MY=40;j=0;SC=1;YY();Y();}
YYY();</script>
使用変数
| a | 乱数発生用 |
| b | 乱数発生用 |
| C | 空白キャラクタ |
| ccc -------( Function ) | 乱数関数 |
| D | Documentという文字 省略用 |
| E | リスタート用ボタン |
| G | <font color=の文字 省略用 |
| H | </font>の文字 省略用 |
| I -------( Function ) | マップのにキャラクタを表示する関数 |
| i | ループ用 |
| ID | setTimeout用のID。ボタンにClear入れないと100が反映されなくなるっぽい |
| j | 乱数発生用 |
| K | キー入力用 |
| KY | 鍵を取ったか? |
| M | 自分の座標の増減 |
| MX | マップの大きさX |
| MY | マップの大きさY |
| N1 | ジャンプ台のキャラクタ |
| N | ジャンプ台のキャラクタ(色付き) |
| O1 | 刺のキャラクタ |
| O | 刺のキャラクタ(色付き) |
| P2 | 自分の下の座標 |
| P | 自分の座標 |
| Q | 自分のキャラクタ。● |
| R -------( Function ) | ランダムにマップにキャラクタを表示する関数 |
| S | マップ全体を表示する用 |
| SC | スコア |
| T1 | 鍵のキャラクタ |
| T | 鍵のキャラクタ(色付き) |
| U1 | 門のキャラクタ |
| U | 門のキャラクタ(色付き) |
| W1 | 壁キャラクタ |
| W | 壁キャラクタ(色付き) |
| X1 | 自分の位置の物(色付き) |
| X | 自分の位置の物 |
| XX1 | 自分の下の位置の物 |
| XX | 自分の下の位置の物(色付き) |
| Y -------( Function ) | ループ部分 |
| YY -------( Function ) | 初期値部分 |
| YYY -------( Function ) | 全体全部 |
| Z | 自分の座標の1回分前 |