示例#1
0
        private void Tile_Click(object sender, RoutedEventArgs e)
        {
            if (!(sender is VisualChessTile))
            {
                throw new ArgumentException();
            }
            var tile = sender as VisualChessTile;

            if (SelectedTile == null && tile.Piece != null)
            {
                SelectTile(tile);
            }
            else if (SelectedTile != null && MoveDictionary.ContainsKey(tile))
            {
                ExecuteMove(tile);
            }
            else if (SelectedTile != null)
            {
                SelectedTile.Deselect();
                SelectedTile = null;
                foreach (var t in MoveDictionary.Keys)
                {
                    t.Deselect();
                }
                MoveDictionary.Clear();
            }
        }
示例#2
0
            public VisualChessPiece(Grid ChessGrid, ChessPiece Piece, VisualChessTile t = null)
            {
                IsHitTestVisible = false;
                BitmapImage logo = new BitmapImage();

                logo.BeginInit();
                logo.UriSource = UriFromChessPiece(Piece);
                logo.EndInit();
                Source = logo;
                Panel.SetZIndex(this, 1);
                Tile = t;
                ChessGrid.Children.Add(this);
            }
示例#3
0
 private void CreateBoard()
 {
     for (int i = 0; i < 8; i++)
     {
         //BoardState.Add(new List<VisualChessPiece>());
         TileMap.Add(new List <VisualChessTile>());
         for (int j = 0; j < 8; j++)
         {
             //BoardState[i].Add(null);
             VisualChessTile x = new VisualChessTile(this, i, j);
             Grid.SetColumn(x, i);
             Grid.SetRow(x, 7 - j);
             ChessGrid.Children.Add(x);
             TileMap[i].Add(x);
         }
     }
 }
示例#4
0
 private void SelectTile(VisualChessTile tile)
 {
     SelectedTile = tile;
     SelectedTile.Select();
     if (GameBoard[(tile.x, tile.y)] == null)