2048 game implementing in golang
random generate 兩個數字到空格上 選位置:透過 rand 套件,隨機從 0-15 選一個數字 選數字:透過 rand 套件,隨機從 1-10 選一個數字,如果 < 10,則數字為2, 如果 = 10 則數字為4 (2跟4出現的機率 9:1) 如果該位置是空格,就填入數字;如果該位置不是空格,就再找下一個空格 執行2次
執行3個動作: 壓縮 合併 壓縮
從終點往起點,將整行或整列上的數字填滿到空格。 設定 i,j 兩個指標 從 0, 1 開始 持續移動 j,如果遇到第一個非空格的數字,替換 j, i 的資料; 然後移動 i+1。 持續移動直到 j 超過最大長度。
從終點往起點,如果相鄰(當前數字的下一格)方塊的數字相等,則合併數字(將當前數字*2),並且下一格數字留空。 if i == i+1 { nums[i] *= 2 nums[i+1] = 0 }
ex: 0 0 0 2 i j 2 0 0 0 i j ex: 0 0 2 2 i j 2 0 0 2 i j 4 0 0 0
ex: 2 0 2 4 2 2 4 0 壓縮 4 0 4 0 合併 4 4 0 0 壓縮 ex: 2 2 2 2 2 2 2 2 壓縮 4 0 4 0 合併 4 4 0 0 壓縮 ex: 2 0 0 2 2 2 0 0 壓縮 4 0 0 0 合併 4 0 0 0 壓縮 ex: 2 2 0 4 2 2 4 0 4 0 4 0 4 4 0 0