我正在嘗試製作位珠寶級聯寶石模擬器。到目前爲止,我已經能夠檢測和刪除火柴,但現在我需要讓珠寶掉下來。我的狀態由一系列位板表示,每種類型的寶石一個。我有一個被刪除的所有珠寶的面具。珠光寶寶位板應用重力
是否有可能使用一些按位魔法來做到這一點?
兩個初始位板的例子(讓我們假設只有兩種類型的寶石,它是一個4x4電路板而不是8x8)。第一位是左下角,第四位是左上角,最後一位是右上角。
0 0 1 1 1 1 0 0
1 0 0 0 0 1 1 1
1 1 1 1 0 0 0 0
0 0 1 0 1 1 0 1
除去比賽後:
0 0 1 1 1 1 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 1 0 1 1 0 1
使用的面膜是:
0 0 0 0
0 1 1 1
1 1 1 1
0 0 0 0
和重力後,它應該看起來像:
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
1 0 1 1 0 1 0 0
0 0 1 0 1 1 0 1
這是用整數實現,並且這些步驟會看起來像:
[43814, 21721] # Initial state
[35076, 4249], 26210 # State after matches have been removed, mask used to remove matches
[8962, 4149] # State after gravity has been applied
您能否添加這些位板的外觀的最小示例? – 2014-08-27 11:28:52
@tobias_k它可以理解嗎? – 2014-08-27 11:46:49
是的,那樣更好。那麼,你必須檢查所有電路板上的單元是否爲'0',然後你可以將單元放在上面。如果你爲所有的珠寶使用一塊電路板,這將會容易得多,例如,藍色的「1」,綠色的「2」等等。你使用多位電路板的任何特殊原因?即使那樣,你也可以很容易地從那個組合電路板中獲得這些比特板。 – 2014-08-27 11:53:49