我正在實施一個wpf步步高遊戲, 我需要找到一個模式來實現棋子的移動和位置。步步高棋盤遊戲的綁定模式
我的電路板由一個3行的網格組成: 頂行,分隔行,底行和12列,分隔行不包含 功能它只是一個可視幫助程序。
上排和下排每個由12個包含堆疊面板的單元組成,這些典當是橢圓形。
遊戲中的一個動作包括從一個堆棧中刪除一個橢圓(典當),並將其添加到另一個堆棧中的 。
// Example move a pawn from stack23 to stack22
Ellipse ellipse = (Ellipse)Stack23.Children[Stack23.Children.Count - 1];
Stack23.Children.RemoveAt(Stack23.Children.Count - 1);
Stack22.Children.Add(ellipse);
我被要求使用預定義的類爲這個項目稱爲局
public class Board
{
public Stack<Pawn>[] Pipes { get; set; }
public Board()
{
Pipes = new Stack<Pawn>[24];
}
}
典當類爲遊戲的流動性,例如當前檢查的所有者(運動員或對手)
public Class Pawn
{
public bool IsMine{get; set;}
}
每一個舉動也將包括從板中彈出和推動的功能
Pipes[22].Push(Pipes[23].Pop());
(1)的UI和功能是分開的,因爲某些東西有移動的棋子時(雖然橢圓被分配不同的顏色,並且可以通過顏色進行檢查) 進行檢查,但我不得不使用這個類的任何方式,所以我只是想知道什麼可能是從用戶界面的邏輯解耦的優點...
(2)我怎麼能實現功能和用戶界面之間的綁定 如何,我將綁定堆棧面板到堆棧和什麼轉換器,以便彈出和推動操作會導致相應的UI代碼?