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(); } }
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); }
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); } } }
private void SelectTile(VisualChessTile tile) { SelectedTile = tile; SelectedTile.Select(); if (GameBoard[(tile.x, tile.y)] == null)