欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

60行js代碼實(shí)現(xiàn)俄羅斯方塊

 更新時(shí)間:2015年03月31日 11:27:55   投稿:hebedich  
這篇文章主要介紹了60行js代碼實(shí)現(xiàn)俄羅斯方塊,可能會(huì)有些小bug,不過(guò)總體上還是比較不錯(cuò)的。大伙來(lái)研究下代碼,給出意見(jiàn)。

這是我之前網(wǎng)上看到的,很牛逼的一位大神寫(xiě)的,一直膜拜中

<!doctype html><html><head></head><body>
<div id="box" style="width:252px;font:25px/25px 宋體;background:#000;color:#9f9;border:#999 20px ridge;text-shadow:2px 3px 1px #0f0;"></div>
<script>
var map=eval("["+Array(23).join("0x801,")+"0xfff]");
var tatris=[[0x6600],[0x2222,0xf00],[0xc600,0x2640],[0x6c00,0x4620],[0x4460,0x2e0,0x6220,0x740],[0x2260,0xe20,0x6440,0x4700],[0x2620,0x720,0x2320,0x2700]];
var keycom={"38":"rotate(1)","40":"down()","37":"move(2,1)","39":"move(0.5,-1)"};
var dia, pos, bak, run;
function start(){
  dia=tatris[~~(Math.random()*7)];
  bak=pos={fk:[],y:0,x:4,s:~~(Math.random()*4)};
  rotate(0);
}
function over(){
  document.onkeydown=null;
  clearInterval(run);
  alert("GAME OVER");
}
function update(t){
  bak={fk:pos.fk.slice(0),y:pos.y,x:pos.x,s:pos.s};
  if(t) return;
  for(var i=0,a2=""; i<22; i++)
    a2+=map[i].toString(2).slice(1,-1)+"<br/>";
  for(var i=0,n; i<4; i++)
    if(/([^0]+)/.test(bak.fk[i].toString(2).replace(/1/g,"\u25a1")))
      a2=a2.substr(0,n=(bak.y+i+1)*15-RegExp.$_.length-4)+RegExp.$1+a2.slice(n+RegExp.$1.length);
  document.getElementById("box").innerHTML=a2.replace(/1/g,"\u25a0").replace(/0/g,"\u3000");
}
function is(){
  for(var i=0; i<4; i++)
    if((pos.fk[i]&map[pos.y+i])!=0) return pos=bak;
}
function rotate(r){
  var f=dia[pos.s=(pos.s+r)%dia.length];
  for(var i=0; i<4; i++)
    pos.fk[i]=(f>>(12-i*4)&15)<<pos.x;
  update(is());
}
function down(){
  ++pos.y;
  if(is()){
    for(var i=0; i<4 && pos.y+i<22; i++)
      if((map[pos.y+i]|=pos.fk[i])==0xfff)
        map.splice(pos.y+i,1), map.unshift(0x801);
    if(map[1]!=0x801) return over();
    start();
  }
  update();
}
function move(t,k){
  pos.x+=k;
  for(var i=0; i<4; i++)
    pos.fk[i]*=t;
  update(is());
}
document.onkeydown=function(e){
  eval(keycom[(e?e:event).keyCode]);
};
start();
run=setInterval("down()",400);
</script></body></html>

以上所述就是本文的全部?jī)?nèi)容,希望大家能夠喜歡。

相關(guān)文章

  • 詳解ES6中的 Set Map 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)總結(jié)

    詳解ES6中的 Set Map 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)總結(jié)

    這篇文章主要介紹了詳解ES6中的 Set Map 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • javascript原型繼承工作原理和實(shí)例詳解

    javascript原型繼承工作原理和實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了javascript原型繼承,闡明什么是原型繼承,以及在JavaScript中究竟如何使用原型繼承,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 微信小程序?qū)崿F(xiàn)循環(huán)嵌套數(shù)據(jù)選擇

    微信小程序?qū)崿F(xiàn)循環(huán)嵌套數(shù)據(jù)選擇

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)循環(huán)嵌套數(shù)據(jù)選擇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解JavaScript嚴(yán)格模式的使用方法

    詳解JavaScript嚴(yán)格模式的使用方法

    JavaScript的嚴(yán)格模式(Strict?Mode)是一種在代碼中啟用的特殊模式,用于提供更嚴(yán)格的語(yǔ)法和錯(cuò)誤檢查,以改善代碼質(zhì)量和增強(qiáng)安全性,本文主要介紹JS的嚴(yán)格模式的用法,可以幫助大家避免一些常見(jiàn)的錯(cuò)誤,需要的朋友可以參考下
    2023-05-05
  • Swiper 4.x 使用方法(移動(dòng)端網(wǎng)站的內(nèi)容觸摸滑動(dòng))

    Swiper 4.x 使用方法(移動(dòng)端網(wǎng)站的內(nèi)容觸摸滑動(dòng))

    Swiper是純javascript打造的滑動(dòng)特效插件,面向手機(jī)、平板電腦等移動(dòng)終端,這里為大家簡(jiǎn)單介紹一下Swiper4的用法,需要的朋友可以參考下
    2018-05-05
  • js通過(guò)keyCode值判斷單擊鍵盤(pán)上某個(gè)鍵,然后觸發(fā)指定的事件方法

    js通過(guò)keyCode值判斷單擊鍵盤(pán)上某個(gè)鍵,然后觸發(fā)指定的事件方法

    下面小編就為大家?guī)?lái)一篇js通過(guò)keyCode值判斷單擊鍵盤(pán)上某個(gè)鍵,然后觸發(fā)指定的事件方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • 深入理解es6塊級(jí)作用域的使用

    深入理解es6塊級(jí)作用域的使用

    這篇文章主要介紹了深入理解es6塊級(jí)作用域的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JS關(guān)閉窗口時(shí)產(chǎn)生的事件及用法示例

    JS關(guān)閉窗口時(shí)產(chǎn)生的事件及用法示例

    這篇文章主要介紹了JS關(guān)閉窗口時(shí)產(chǎn)生的事件及用法,結(jié)合關(guān)閉窗口時(shí)提交評(píng)論的實(shí)例分析了javascript事件觸發(fā)機(jī)制及遮罩層實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-08-08
  • 微信小程序?qū)崿F(xiàn)輪播圖效果

    微信小程序?qū)崿F(xiàn)輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)輪播圖效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 一文詳解如何檢測(cè)并解決JS代碼中的死循環(huán)

    一文詳解如何檢測(cè)并解決JS代碼中的死循環(huán)

    這篇文章主要想和大家來(lái)一起探討一下能否通過(guò)靜態(tài)分析的方式檢測(cè)出死循環(huán),如果不能,我們又應(yīng)該如何在不借用其他線(xiàn)程的情況下,解決死循環(huán)卡住問(wèn)題,感興趣的可以了解下
    2023-09-09

最新評(píng)論