コード例 #1
0
 public void UpdateSourceIfPromotion(ChessDotNet.MoveType moveType, string newPosition, ChessDotNet.Player side)
 {
     if (moveType == (ChessDotNet.MoveType.Capture | ChessDotNet.MoveType.Promotion | ChessDotNet.MoveType.Move))
     {
         string sourceForPromotion = side == ChessDotNet.Player.White ? "/Resources/Pieces/wQ.png" : "/Resources/Pieces/bQ.png";
         Cells.Single(item => item.Position == newPosition).Source = sourceForPromotion;
     }
     else
     {
         Cells.Single(item => item.Position == newPosition).Source = SelectedCell.Source;
     }
 }
コード例 #2
0
 public void UpdateSourceIfEnPassant(ChessDotNet.MoveType moveType, string newPosition, ChessDotNet.Player side)
 {
     if (moveType == (ChessDotNet.MoveType.Move | ChessDotNet.MoveType.EnPassant | ChessDotNet.MoveType.Capture))
     {
         char c             = newPosition.ElementAt(0);
         int  verticalIndex = (int)Char.GetNumericValue(newPosition.ElementAt(1));
         if (side == ChessDotNet.Player.White)
         {
             verticalIndex--;
         }
         else
         {
             verticalIndex++;
         }
         newPosition = c.ToString() + verticalIndex.ToString();
         Cells.Single(item => item.Position == newPosition).Source = null;
     }
 }
コード例 #3
0
 public void UpdateSourceIfCastling(ChessDotNet.MoveType moveType, string newPosition)
 {
     if (moveType == (ChessDotNet.MoveType.Castling | ChessDotNet.MoveType.Move))
     {
         char   c = newPosition.ElementAt(0);
         string rockPosition;
         string newRockPosition;
         if (c == 'G')
         {
             rockPosition    = "H" + newPosition.ElementAt(1).ToString();
             newRockPosition = "F" + newPosition.ElementAt(1).ToString();
         }
         else
         {
             rockPosition    = "A" + newPosition.ElementAt(1).ToString();
             newRockPosition = "D" + newPosition.ElementAt(1).ToString();
         }
         var cellWithRock = Cells.Single(item => item.Position == rockPosition);
         Cells.Single(item => item.Position == newRockPosition).Source = cellWithRock.Source;
         cellWithRock.Source = null;
     }
 }