創建了靜態背景,又生成了隨機塊之后,我們開始創建塊移動的方法:
這是一個簡單算法的實現,分為四種情況,上,下,左,右,這里我們以一種情況為例,進行代碼的詳細設計:
考慮向上的情況:
整體思想是:
1.從數字格的第二行開始從左到右遍歷塊,遍歷到塊不為空,并獲取到當前塊的下一個位置。
2.這時有三種情況:①如果下一個位置一直為空,就讓塊的坐標上移,直到坐標到頂,移到頂,跳出while循環,此時執行第一種情況;
②如果遇到下一個位置不為空,就跳出while循環,兩個塊的坐標值不相同,塊就不再移動。
③如果遇到下一個位置不為空,且兩個塊的坐標值相同,同樣跳出while循環,下一個塊的塊值翻倍,當前塊的位置置空。
3.總結一下,總共包括了兩個循環,第一次遍歷空余的位置,第二次是只有找到有塊的位置后找它的下一個位置,并進行相應的設置。
需要注意的是:
之前定義的存儲空塊的state[]數組此時大有用處,可以通過這個數組手動的設置塊或者清空塊。
代碼階段:
思路理清了,我們開始來寫代碼:
//移動函數
var move=function(m){
switch(m){
case "上":
break;
case "下":
break;
case "左":
break;
case "右":
break;
}
}