俄羅斯方塊

2021-07-06 08:14:26 字數 2968 閱讀 9459

兩個版本

lufy版

div版

div版本的遊戲開頭和結尾沒有做處理,主要是體會用陣列為座標做遊戲的思想。

以下是lufy的原始碼

loading……

function box()

box.prototype =

result[i] = child;

} return result;

}}

//宣告變數

//進度條顯示層,背景層,方塊繪製層,方塊預覽層

var loadinglayer,backlayer,graphicsmap,nextlayer;

var imglist = {};

var imgdata = new array(

, ,, ,

);//方塊類變數,用於生成新的方塊

var box;

//當前方塊的位置

var pointbox=;

//當前方塊,預覽方塊

var nowbox,nextbox;

//方塊座標陣列

var map;

//方塊資料陣列

var nodelist;

//方塊陣列

var bitmapdatalist;

//得分相關

var point=0,pointtext;

//消除層數相關

var del=0,deltext;

//方塊下落速度相關

var speed=15,speedmax=15,speedtext,speedindex = 0;

//方塊區域起始位置

var start_x1=15,start_y1=20,start_x2=228,start_y2=65;

//控制相關

var mykey = ;

function main(),

gameinit

);}//讀取完所有,進行遊戲標題畫面的初始化工作

function gameinit(result)

//遊戲畫面初始化

function gametostart()else if(mx < mykey.touchx)

if(math.floor(event.selfy / 20) > mykey.touchy)

}function onframe()

}break;

case "right":

if(checkplus(1,0))

}break;

case "down":

if(checkplus(0,1))

}break;

case "up":

changebox();

if(lglobal.cantouch || true)

break;

} }if(speedindex++ > speed)else

removebox();

getnewbox();

} }plusbox();

drawmap();

}//遊戲結束

function gameover()

//繪製所有方塊

function drawmap()else

} }}//方塊變形

function changebox()

showtext();

}//判斷是否可移動

function checkplus(nx,ny)

} for(i=0;i= map.length || j+pointbox.x + nx < 0 || j+pointbox.x + nx >= map[0].length)else

}if(nowbox[i][j] > 0 && map[i+pointbox.y + ny][j+pointbox.x + nx] > 0)

}

} return true;

}//移除方塊

function minusbox()

map[i+pointbox.y][j+pointbox.x]=map[i+pointbox.y][j+pointbox.x]-nowbox[i][j];

nodelist[i+pointbox.y][j+pointbox.x]["index"] = map[i+pointbox.y][j+pointbox.x] - 1;

} }}//新增方塊

function plusbox()

map[i+pointbox.y][j+pointbox.x]=nowbox[i][j]+map[i+pointbox.y][j+pointbox.x];

nodelist[i+pointbox.y][j+pointbox.x]["index"] = map[i+pointbox.y][j+pointbox.x] - 1;

} }}

//獲取下一方塊

function getnewbox()

nowbox=nextbox;

pointbox.x=3;

pointbox.y=-4;

nextbox=box.getbox();

nextlayer.removeallchild();

var i,j,bitmap;

for(i=0;i

bitmap = new lbitmap(bitmapdatalist[nextbox[i][j] - 1]);

bitmap.x = bitmap.getwidth()*j+start_x2;

bitmap.y = bitmap.getheight()*i+start_y2;

nextlayer.addchild(bitmap);

} }}

俄羅斯方塊高階 AI俄羅斯方塊

前文回顧 致青春 python實現俄羅斯方塊 人工智慧大火的今天,如果還是自己玩俄羅斯方塊未免顯得太low,為什麼不對遊戲公升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之後利用週六週日兩天的時間去蒐集了大量的資料,在電腦宕機好多次之後終於將ai俄羅斯方塊實現了。所謂讓機器自己去玩俄羅斯方塊,就是讓...

俄羅斯方塊

俄羅斯方塊 tetris,俄文 是一款風靡全球的電視遊戲機 和掌上遊戲機遊戲,它由俄羅斯人阿列克謝 帕基特諾夫 發明,故得此名。俄羅斯方塊的基本規則是移動 旋轉和擺放遊戲自動輸出的各種方塊,使之排列成完整的一行或多行並且消除得分。由於上手簡單 老少皆宜,從而家喻戶曉,風靡世界。俄羅斯方塊的開發者是阿...

俄羅斯方塊

include include include include includeusing namespace std include include define mem a,b memset a,b,sizeof a const int sudu 40 const int dir 4 2 cons...