/// <summary> /// Crea el control para una figura /// </summary> private FrameworkElement CreateFigure(FigureViewModel figure) { Image image = CreateImage(GetImageFileName(figure), figure.Row, figure.Column); // Asigna el tag image.Tag = figure; // Devuelve el control return(image); }
/// <summary> /// Set figure in board (image) /// </summary> /// <param name="figure">figure post model</param> private void SetFigureImage(FigureViewModel figure) { try { _viewBoard[figure.Position.X, figure.Position.Y].Content = ViewManager.GetImage(figure); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
// todo - move this component to XAML public static UIElement ToUIElement(this FigureViewModel figure) { if (figure.Type == "WhiteQueen" || figure.Type == "BlackQueen") { return new Rectangle { Height = 26, Width = 26, Fill = figure.Type != "WhiteQueen" ? Brushes.Black : Brushes.White, Stroke = Brushes.Tan, StrokeThickness = 5 } } ; return(new Rectangle { Height = 26, Width = 26, Fill = figure.Type != "White" ? Brushes.Black : Brushes.White }); } }
/// <summary> /// Method to Get image by figure /// </summary> /// <param name="figure">figure</param> /// <returns>image by figure</returns> public static Image GetImage(FigureViewModel figure) { switch (figure.FigureName) { case "King": if (!figure.ColorFlag) { return new Image() { Source = new BitmapImage(new Uri(_imagePathBlackKing, UriKind.Relative)) } } ; return(new Image() { Source = new BitmapImage(new Uri(_imagePathWhiteKing, UriKind.Relative)) }); case "Queen": if (!figure.ColorFlag) { return new Image() { Source = new BitmapImage(new Uri(_imagePathBlackQueen, UriKind.Relative)) } } ; return(new Image() { Source = new BitmapImage(new Uri(_imagePathWhiteQueen, UriKind.Relative)) }); case "Rook": if (!figure.ColorFlag) { return new Image() { Source = new BitmapImage(new Uri(_imagePathBlackRook, UriKind.Relative)) } } ; return(new Image() { Source = new BitmapImage(new Uri(_imagePathWhiteRook, UriKind.Relative)) }); case "Horse": if (!figure.ColorFlag) { return new Image() { Source = new BitmapImage(new Uri(_imagePathBlackHorse, UriKind.Relative)) } } ; return(new Image() { Source = new BitmapImage(new Uri(_imagePathWhiteHorse, UriKind.Relative)) }); case "Bishop": if (!figure.ColorFlag) { return new Image() { Source = new BitmapImage(new Uri(_imagePathBlackBishop, UriKind.Relative)) } } ; return(new Image() { Source = new BitmapImage(new Uri(_imagePathWhiteBishop, UriKind.Relative)) }); case "Pawn": if (!figure.ColorFlag) { return new Image() { Source = new BitmapImage(new Uri(_imagePathBlackPawn, UriKind.Relative)) } } ; return(new Image() { Source = new BitmapImage(new Uri(_imagePathWhitePawn, UriKind.Relative)) }); default: throw new Exception("Image not Found"); } }
/// <summary> /// Move given figure to given position and return flag /// </summary> /// <param name="figureToMove">figure to move</param> /// <param name="pointToMove">position to move</param> /// <returns>true if move else false</returns> public bool Play(FigureViewModel figureToMove, (int x, int y) pointToMove)
public Figure(IFigure figure) { InitializeComponent(); DataContext = new FigureViewModel(figure); SetBrush(figure); }