<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[［娱乐一下］一个俄罗斯方块的javascript代码]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 19 Nov 2006 12:47:52 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<p align="center">&lt;HTML&gt;<br/>&lt;HEAD&gt;<br/>&lt;TITLE&gt;俄罗斯方块&lt;/TITLE&gt;<br/>&lt;style&gt;<br/>body &#123;margin:0;background:black;&#125;<br/>td &#123;height:20;width:20;&#125;<br/>#block_div &#123;position:absolute;z-index:1;width:80;&#125;<br/>#table_div &#123;position:absolute;z-index:0;width:320;&#125;<br/>#nblock_div &#123;position:absolute;z-index:2;font:48 system;color:red;&#125;<br/>#title_div &#123;position:absolute;left:326;top:7;font-size:22px;color:white&#125;<br/>#infobar_div &#123;position:absolute;left:396;top:416;&#125;<br/>#infobar2_div &#123;position:absolute;left:396;top:480;font-size:14px;color:white&#125;<br/>#infobar2_div a&#123;color:99ccff;font:system;text-decoration:none&#125;<br/>&lt;/style&gt;<br/><br/>&lt;SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript&gt;<br/>&lt;!--<br/>if (document.all)&#123;<br/>var n_width = 800;<br/>var n_height = 600;<br/>var n_left = Math.round( screen.width/2 ) - n_width/2;<br/>var n_top = Math.round( screen.height/2 ) - n_height/2;<br/>var n_IncStep = 20;<br/>var curBlcok,nextBlock;<br/>var arr_curBlock = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);<br/>var curX,curY;<br/>var speed=1;<br/>var maxspeed=9;<br/>var clr_per_line=18;<br/>var pause=0;<br/>var gameover=0;<br/>var colors = new Array(&quot;#999999&quot;,&quot;#0000FF&quot;,&quot;#80FFFF&quot;,&quot;#80FF80&quot;,&quot;#FFFF00&quot;,&quot;#FF8000&quot;,&quot;#FF00FF&quot;,&quot;#FF0000&quot;<br/>);<br/>var cid;<br/>var ncid;<br/>var blocks = new Array(&quot;tt_O1&quot;,&quot;tt_T2&quot;,&quot;tt_Z1&quot;,&quot;tt_S1&quot;,&quot;tt_L1&quot;,&quot;tt_J1&quot;,&quot;tt_I2&quot;);<br/>var bid;<br/>var killedlines=0;<br/><br/>var tt_O1 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0);<br/>var tt_O2 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0);<br/>var tt_O3 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0);<br/>var tt_O4 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0);<br/><br/>var tt_T1 = new Array(0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0);<br/>var tt_T2 = new Array(0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0);<br/>var tt_T3 = new Array(0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0);<br/>var tt_T4 = new Array(0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0);<br/><br/>var tt_Z1 = new Array(0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0);<br/>var tt_Z2 = new Array(0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0);<br/>var tt_Z3 = new Array(0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0);<br/>var tt_Z4 = new Array(0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0);<br/><br/>var tt_S1 = new Array(0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0);<br/>var tt_S2 = new Array(0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0);<br/>var tt_S3 = new Array(0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0);<br/>var tt_S4 = new Array(0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0);<br/><br/>var tt_L1 = new Array(0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0);<br/>var tt_L2 = new Array(0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0);<br/>var tt_L3 = new Array(0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0);<br/>var tt_L4 = new Array(0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0);<br/><br/>var tt_J1 = new Array(0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0);<br/>var tt_J2 = new Array(0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0);<br/>var tt_J3 = new Array(0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0);<br/>var tt_J4 = new Array(0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0);<br/><br/>var tt_I1 = new Array(0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0);<br/>var tt_I2 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1);<br/>var tt_I3 = new Array(0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0);<br/>var tt_I4 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1);<br/><br/>var table = new Array(<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp;1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)<br/><br/>&#125;<br/>else<br/>alert(&quot;You need IE4+ to play Tetris!&quot;)<br/><br/>function dimension2(row,col,num)&#123;<br/> &nbsp; &nbsp;var i = row * num + col;<br/> &nbsp; &nbsp;return (this[i]);<br/>&#125;<br/>Array.prototype.getd = dimension2;<br/><br/>function ShowBlock(x,y,block_type,color)&#123;<br/> &nbsp; &nbsp;for (var i=0;i&lt;block_tbl.rows.length;i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;for (var j=0;j&lt;block_tbl.rows(i).cells.length;j++)&#123; &nbsp; &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var d2 = i * 4 + j;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (block_type[d2]==1)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;block_tbl.rows(i).cells(j).style.background = color;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;block_tbl.rows(i).cells(j).style.background = &quot;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;block_div.style.pixelLeft=x;<br/> &nbsp; &nbsp;block_div.style.pixelTop=y;<br/>&#125;<br/><br/>function ShowBlock1(x,y,block_type,color,obj_tabID,obj_divID)&#123;<br/> &nbsp; &nbsp;for (var i=0;i&lt;obj_tabID.rows.length;i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;for (var j=0;j&lt;obj_tabID.rows(i).cells.length;j++)&#123; &nbsp; &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var d2 = i * 4 + j;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (block_type[d2]==1)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;obj_tabID.rows(i).cells(j).style.background = color;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;obj_tabID.rows(i).cells(j).style.background = &quot;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;obj_divID.style.pixelLeft=x;<br/> &nbsp; &nbsp;obj_divID.style.pixelTop=y;<br/>&#125;<br/><br/>function Change(inc)&#123;<br/> &nbsp; &nbsp;var type = curBlock.substr(0,4);<br/> &nbsp; &nbsp;var num = curBlock.substr(curBlock.length-1);<br/> &nbsp; &nbsp;num = parseInt(num) + inc;<br/> &nbsp; &nbsp;if (num&gt;4&amp;#124;&amp;#124;num&lt;1) num -= 4*inc;<br/> &nbsp; &nbsp;type += num;<br/> &nbsp; &nbsp;eval(&quot;arr_tmp = &quot; + type + &quot;;&quot;);<br/> &nbsp; &nbsp;if (CanMove(curX,curY,arr_tmp))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;curBlock = type;<br/> &nbsp; &nbsp; &nbsp; &nbsp;eval(&quot;arr_curBlock = &quot; + curBlock + &quot;;&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp;eval(&quot;ShowBlock(block_div.style.pixelLeft,block_div.style.pixelTop,&quot; + curBlock + &quot;,colors[&quot; + cid + &quot;]);&quot;);<br/> &nbsp; &nbsp;&#125;<br/>&#125;<br/><br/>function CanMove(x,y,block)&#123;<br/> &nbsp; &nbsp;for (i=0;i&lt;4;i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;for (j=0;j&lt;4;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (block.getd(i,j,4)&amp;table.getd(y/n_IncStep+i,x/n_IncStep+j,16)) return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;return true;<br/>&#125;<br/><br/>function NewBlock()&#123;<br/> &nbsp; &nbsp;curBlock = nextBlock;<br/> &nbsp; &nbsp;cid = ncid;<br/> &nbsp; &nbsp;bid = Math.round(Math.random()*(blocks.length-1));<br/> &nbsp; &nbsp;ncid = Math.round(Math.random()*(colors.length-1));<br/> &nbsp; &nbsp;nextBlock = blocks[bid];<br/> &nbsp; &nbsp;eval(&quot;arr_curBlock = &quot; + curBlock + &quot;;&quot;);<br/> &nbsp; &nbsp;eval(&quot;ShowBlock(120,0,&quot; + curBlock + &quot;,colors[&quot; + cid + &quot;]);&quot;);<br/> &nbsp; &nbsp;eval(&quot;arr_curBlock = &quot; + curBlock + &quot;;&quot;);<br/> &nbsp; &nbsp;eval(&quot;ShowBlock1(466,116,&quot; + nextBlock + &quot;,colors[&quot; + ncid + &quot;],nblock_tbl,nblock_div);&quot;);<br/>&#125;<br/><br/>function SaveBlock()&#123;<br/> &nbsp; &nbsp;for (i=0;i&lt;4;i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;for (j=0;j&lt;4;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;table[(curY/n_IncStep+i)*16+curX/n_IncStep+j]&amp;#124;=arr_curBlock[i*4+j];<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (arr_curBlock[i*4+j]==1)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((curY/n_IncStep+i&lt;21)&amp;&amp;(curX/n_IncStep+j&gt;1)&amp;&amp;(curX/n_IncStep+j&lt;14))<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;table_tbl.rows(curY/n_IncStep+i).cells(curX/n_IncStep+j).style.background = colors[cid];<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (table[(curY/n_IncStep+i)*16+curX/n_IncStep+j]!=1)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;table_tbl.rows(curY/n_IncStep+i).cells(curX/n_IncStep+j).style.background = &quot;black&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/>&#125;<br/><br/>function DelLine(line)&#123;<br/> &nbsp; &nbsp;for(i=line;i&gt;0;i--)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;for(j=2;j&lt;14;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;table[i*16+j]=table[(i-1)*16+j];<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;table_tbl.deleteRow(line);<br/> &nbsp; &nbsp;table_tbl.insertRow(0);<br/> &nbsp; &nbsp;for (i=0;i&lt;16;i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;table_tbl.rows(0).insertCell();<br/> &nbsp; &nbsp; &nbsp; &nbsp;if (i&lt;2&amp;#124;&amp;#124;i&gt;13) table_tbl.rows(0).cells(i).style.background=&quot;navy&quot;; &nbsp; &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;killedlines++;<br/> &nbsp; &nbsp;cll.innerText=parseInt(cll.innerText)+1;<br/>&#125;<br/><br/>function DelLines()&#123;<br/> &nbsp; &nbsp;var c,d,i,j;<br/> &nbsp; &nbsp;d=0;<br/> &nbsp; &nbsp;curY=block_div.style.pixelTop;<br/> &nbsp; &nbsp;for(i=(curY/20+3);i&gt;curY/20-1;i--)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;c=0;<br/> &nbsp; &nbsp; &nbsp; &nbsp;for(j=2;j&lt;14;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (isNaN(table[i*16+j])&amp;#124;&amp;#124;i==21) break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;c+=table[i*16+j];<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp;if(c==12)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DelLine(i);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i++;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;d++;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;if (d&gt;0)<br/> &nbsp; &nbsp; &nbsp; &nbsp;sco.innerText=parseInt(sco.innerText)+d*d*36;<br/>&#125;<br/><br/>function Lucifer()&#123;<br/> &nbsp; &nbsp;for(var i=2;i&lt;14;i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;if (table[16+i]==1) return true;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;return false;<br/>&#125;<br/><br/>function GameOver()&#123;<br/> &nbsp; &nbsp;gameover=1;<br/> &nbsp; &nbsp;clearInterval(gameInterval);<br/> &nbsp; &nbsp;block_div.innerHTML=&quot;&quot;;<br/> &nbsp; &nbsp;for (i=0;i&lt;21;i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;for (j=2;j&lt;14;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;setTimeout(&quot;table_tbl.rows(&quot; + i + &quot;).cells(&quot; + j + &quot;).style.background = colors[Math.round(Math.random()*7)];&quot;,16*i*j);<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;nblock_div.innerHTML = &quot;Game Over&quot;;<br/>&#125;<br/><br/><br/><br/>function document_onkeydown() &#123;<br/> &nbsp; &nbsp;if (gameover==1) return;<br/> &nbsp; &nbsp;with (block_div.style)&#123;<br/> &nbsp; &nbsp;curX = pixelLeft;<br/> &nbsp; &nbsp;curY = pixelTop;<br/> &nbsp; &nbsp;switch (event.keyCode)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;case 37:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CanMove(curX-n_IncStep,curY,arr_curBlock))<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pixelLeft-=n_IncStep;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp;case 38:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Change(1);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp;case 39:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CanMove(curX+n_IncStep,curY,arr_curBlock))<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pixelLeft+=n_IncStep;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp;case 40:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CanMove(curX,curY+n_IncStep,arr_curBlock))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pixelTop+=n_IncStep;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SaveBlock();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DelLines();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (Lucifer())&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GameOver();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sco.innerText=parseInt(sco.innerText)+2;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NewBlock();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp;case 32:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (pause==0)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clearInterval(gameInterval);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pause=1;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gameInterval=window.setInterval(&quot;Handle_Interval()&quot;,(maxspeed-speed+1)*60);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pause=0;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp;case 90: &nbsp; &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Change(1);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp;case 88: &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Change(-1);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp;default:<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/>&#125;<br/><br/>function Handle_Interval()&#123;<br/> &nbsp; &nbsp;curX = block_div.style.pixelLeft;<br/> &nbsp; &nbsp;curY = block_div.style.pixelTop;<br/> &nbsp; &nbsp;if (CanMove(curX,curY+n_IncStep,arr_curBlock))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;block_div.style.pixelTop+=n_IncStep;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;SaveBlock();<br/> &nbsp; &nbsp; &nbsp; &nbsp;DelLines();<br/> &nbsp; &nbsp; &nbsp; &nbsp;if (Lucifer())&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GameOver();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp;sco.innerText=parseInt(sco.innerText)+2<br/> &nbsp; &nbsp; &nbsp; &nbsp;NewBlock();<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;if (killedlines&gt;=clr_per_line)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;killedlines-=clr_per_line;<br/> &nbsp; &nbsp; &nbsp; &nbsp;if (speed&lt;maxspeed)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;speed++;<br/> &nbsp; &nbsp; &nbsp; &nbsp;else<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;speed=maxspeed;<br/> &nbsp; &nbsp; &nbsp; &nbsp;spd.innerText=speed;<br/> &nbsp; &nbsp; &nbsp; &nbsp;clearInterval(gameInterval);<br/> &nbsp; &nbsp; &nbsp; &nbsp;gameInterval=window.setInterval(&quot;Handle_Interval()&quot;,(maxspeed-speed+1)*60);<br/> &nbsp; &nbsp;&#125;<br/>&#125;<br/>//--&gt;<br/>&lt;/SCRIPT&gt;<br/><br/>&lt;SCRIPT LANGUAGE=javascript FOR=document EVENT=onkeydown&gt;<br/>&lt;!--<br/> if (document.all)<br/> document_onkeydown()<br/>//--&gt;<br/>&lt;/SCRIPT&gt;<br/><br/>&lt;/HEAD&gt;<br/><br/>&lt;BODY LANGUAGE=javascript&gt;<br/><br/>&lt;div id=block_div style=&quot;left:60;top:0&quot;&gt;<br/>&lt;table id=block_tbl border=0 cellspacing=0 cellpadding=0&gt;<br/>&lt;script&gt;<br/>if (document.all)&#123;<br/>for (var i=0;i&lt;4;i++)&#123;<br/> &nbsp; &nbsp;document.write(&quot;&lt;tr&gt;&quot;);<br/> &nbsp; &nbsp;for (var j=0;j&lt;4;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;document.write(&quot;&lt;td style=&#92;&quot;border:1 solid black;&#92;&quot;&gt;&lt;/td&gt;&quot;);<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;document.write(&quot;&lt;/tr&gt;&quot;);<br/>&#125;<br/>&#125;<br/>&lt;/script&gt;<br/>&lt;/table&gt;<br/>&lt;/div&gt;<br/><br/>&lt;div id=nblock_div&gt;<br/>&lt;table id=nblock_tbl border=0 cellspacing=0 cellpadding=0&gt;<br/>&lt;script&gt;<br/>if (document.all)&#123;<br/>for (var i=0;i&lt;4;i++)&#123;<br/> &nbsp; &nbsp;document.write(&quot;&lt;tr&gt;&quot;);<br/> &nbsp; &nbsp;for (var j=0;j&lt;4;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;document.write(&quot;&lt;td style=&#92;&quot;height:40;width:40;border:1 outset black;&#92;&quot;&gt;&lt;/td&gt;&quot;);<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;document.write(&quot;&lt;/tr&gt;&quot;);<br/>&#125;<br/>&#125;<br/>&lt;/script&gt;<br/>&lt;/table&gt;<br/>&lt;/div&gt;<br/><br/>&lt;div id=table_div&gt;<br/>&lt;table id=table_tbl border=0 cellspacing=0 cellpadding=0&gt;<br/>&lt;script&gt;<br/>if (document.all)&#123;<br/>for (var i=0;i&lt;22;i++)&#123;<br/> &nbsp; &nbsp;document.write(&quot;&lt;tr&gt;&quot;);<br/> &nbsp; &nbsp;for (var j=0;j&lt;16;j++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;var d2 = i * 16 + j;<br/> &nbsp; &nbsp; &nbsp; &nbsp;if (table[d2]==1)<br/> &nbsp; &nbsp; &nbsp; &nbsp;document.write(&quot;&lt;td bgcolor=navy&gt;&lt;/td&gt;&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp;else<br/> &nbsp; &nbsp; &nbsp; &nbsp;document.write(&quot;&lt;td style=&#92;&quot;background:black;&#92;&quot;&gt;&lt;/td&gt;&quot;);<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;document.write(&quot;&lt;/tr&gt;&quot;);<br/>&#125;<br/>&#125;<br/>&lt;/script&gt;<br/>&lt;/table&gt;<br/>&lt;/div&gt;<br/><br/>&lt;div id=title_div nowrap&gt;<br/>&lt;font size=&quot;3&quot;&gt;请在文本框输入(1-9)并按开始键开始游戏: &lt;input type=&quot;text&quot; size=8 id=&quot;speedin&quot;&gt; &lt;button onClick=&quot;begintet()&quot; id=&quot;but&quot;&gt;开始&lt;/button&gt;<br/>&lt;br&gt;<br/>游戏结束后，按&quot;新游戏&quot;键重新开始游戏！&lt;input type=&quot;button&quot; value=&quot;新游戏&quot; onclick=&quot;javascript:window.location.href=&#039;eluosi1.htm&#039;&quot;&gt;<br/>&lt;input type=&quot;button&quot; value=&quot;不玩了&quot; onclick=&quot;self.close()&quot;&gt;<br/>&lt;/font&gt;<br/>&lt;/div&gt;<br/><br/><br/>&lt;div id=infobar_div&gt;<br/>&lt;table border=1 bordercolor=navy cellspacing=0 cellpadding=0&gt;<br/>&lt;tr align=center&gt;<br/>&lt;td style=&quot;color:99ccff;font:12 system;width:56;&quot;&gt;速度:&lt;/td&gt;<br/>&lt;td style=&quot;color:red;font:12 system;&quot; id=spd&gt;1&lt;/td&gt;<br/>&lt;td style=&quot;color:99ccff;font:12 system;width:86;&quot;&gt;总成绩:&lt;/td&gt;<br/>&lt;td style=&quot;color:red;font:12 system;&quot; id=sco&gt;0&lt;/td&gt;<br/>&lt;td style=&quot;color:99ccff;font:12 system;width:96;&quot;&gt;消减排数:&lt;/td&gt;<br/>&lt;td style=&quot;color:red;font:12 system;&quot; id=cll&gt;0&lt;/td&gt;<br/>&lt;/tr&gt;<br/>&lt;/table&gt;<br/>&lt;/div&gt;<br/><br/>&lt;SCRIPT ID=MainSection LANGUAGE=javascript&gt;<br/>&lt;!--<br/>if (document.all)&#123;<br/>ncid = Math.round(Math.random()*(colors.length-1));<br/>bid = Math.round(Math.random()*(blocks.length-1));<br/>nextBlock = blocks[bid];<br/>NewBlock();<br/>&#125;<br/>function begintet()&#123;<br/>document.all.speedin.disabled=true<br/>document.all.but.disabled=true<br/>speed=parseInt(document.all.speedin.value);<br/>if (isNaN(speed)&amp;#124;&amp;#124;speed==null&amp;#124;&amp;#124;speed&gt;maxspeed&amp;#124;&amp;#124;speed&lt;1) speed=1;<br/>spd.innerText=speed;<br/>gameInterval=window.setInterval(&quot;Handle_Interval()&quot;,(maxspeed-speed+1)*60);<br/>&#125;<br/>//--&gt;<br/>&lt;/SCRIPT&gt;<br/>&lt;P&gt;<br/>&lt;/BODY&gt;<br/>&lt;/HTML&gt;</p>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] ［娱乐一下］一个俄罗斯方块的javascript代码]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>