我想製作一個遊戲,玩家可以四處移動。當我點擊一塊棋子時,它顯示所有可用棋子都是這樣的: 如何顯示合法移動
紅色代表合法棋步,深灰色代表牆。
我已經創造了一個網格和按鈕。當我點擊一個按鈕時,我將可用的步數減去或添加到網格中的按鈕索引處。例如,如果我的作品可以移動3個位置,我從按鈕索引中減去3,並獲得作品左側的可用位置。然後我對其他所有方向也一樣。它看起來是這樣的:
For each i as button in grid
Select case grid.indexof(i)
Case grid.getindex(currentPlayingPiece) - 3 'Left
i.background = brushes.red
Case grid.getindex(currentPlayingPiece) + 3 'Right
i.background = brushes.red
Case grid.getindex(currentPlayingPiece) - grid.columndefinitions.count 'Top
i.background = brushes.red
...
Next
使用這種方法是非常緩慢和繁瑣得到所有可用的移動,而不是直觀的讓頂部和底部移動。此外,如果有一堵牆在後面有一個可用的位置,它表明我可以移動到它。所以我的問題是:有沒有更好的方法來完成這個?