兩個版本
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...