[請益] 類似動物管理員的遊戲(二)
上次關於檢查是有任三個以上方塊相連的問題,
大致上已經ok了。
目前小弟又遇到其它的問題,
想再次請教大家。
假設目前的size為5*5,
我的做法是一個5*5陣列為載入圖片的物件,
另一個5*5的陣列儲存圖片的對應值。
圖片的key值
○ = 1
◇ = 2
□ = 3
△ = 4
☆ = 5
P1:
○◇□△△ 1 2 3 4 4
△□☆☆○ 4 3 5 5 1
○△◇□☆ 1 4 2 3 5
○△△○△ 1 4 4 1 4
☆○○☆☆ 5 1 1 5 5
交換{5,0}跟{5,1}兩個方塊後
○◇□△△ 1 2 3 4 4
△□☆☆○ 4 3 5 5 1
○△◇□☆ 1 4 2 3 5
○△△○△ 1 4 4 1 4
○☆○☆☆ 1 5 1 5 5
上面的方塊要落下,並補上新的方塊
○◇□△△ 1 2 3 4 4
△□☆☆○ 4 3 5 5 1
↓△◇□☆ X 4 2 3 5
↓△△○△ X 4 4 1 4
↓☆○☆☆ X 5 1 5 5
完成後
○◇□△△ 1 2 3 4 4
○□☆☆○ 1 3 5 5 1
☆△◇□☆ 5 4 2 3 5
○△△○△ 1 4 4 1 4
△☆○☆☆ 4 5 1 5 5
因為要做出方塊落下的效果
所以目前的做法是要重設方塊的座標
不過這樣會造成陣列索引的錯亂
如上例第一行的情況來講
初始 完成後
[0,0] [2,0]
[1,0] [3,0]
[2,0] [4,0]
[3,0] [0,0]
[4,0] [1,0]
如此當每次使用for迴圈檢查時
便會造成錯誤
[2,0][0,1][0,2][0,3][0,4]
[3,0][1,1][1,2][1,3][1,4]
[4,0][2,1][2,2][2,3][2,4]
[0,0][3,1][3,2][3,3][3,4]
[1,0][4,1][4,2][4,3][4,4]
如要檢查[2,0][0,1][0,2]三者的是否可以消去時
當i=0, j=0時實際上檢查的並不是[2,0]
若各行的方塊被消去多去時
此情況便會越來越複雜
我有想過用轉換的方法
記住每一行下降了幾階(0~7)
初始level = 0
若此次下降了三階則level = 3
則當i=0, j=0時就能得知其真實的位置是[2,0]這個物件
不過後來考慮到並非都是最下面的方塊消去以及左右兩個方塊可以互換的情況下
此方法也會變得相當複雜
不知道各位前輩對處理方塊消去時
方塊落下以及其值的處理
是否能提共一些建議呢
--
海納百川,有容乃大。
壁立千仞,無欲則剛。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.2.10
推
04/23 17:47, , 1F
04/23 17:47, 1F
→
04/23 17:48, , 2F
04/23 17:48, 2F
→
04/23 17:48, , 3F
04/23 17:48, 3F
→
04/23 17:48, , 4F
04/23 17:48, 4F
→
04/23 18:30, , 5F
04/23 18:30, 5F
→
04/23 18:30, , 6F
04/23 18:30, 6F
→
04/23 18:31, , 7F
04/23 18:31, 7F
→
04/23 18:31, , 8F
04/23 18:31, 8F
推
04/23 21:25, , 9F
04/23 21:25, 9F
→
04/23 21:25, , 10F
04/23 21:25, 10F
→
04/24 22:59, , 11F
04/24 22:59, 11F
→
04/24 23:00, , 12F
04/24 23:00, 12F
→
04/25 01:38, , 13F
04/25 01:38, 13F
→
04/25 01:38, , 14F
04/25 01:38, 14F
推
04/25 12:03, , 15F
04/25 12:03, 15F
→
04/27 10:19, , 16F
04/27 10:19, 16F
→
04/27 10:19, , 17F
04/27 10:19, 17F
推
04/28 17:45, , 18F
04/28 17:45, 18F
討論串 (同標題文章)