//-----------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Constructor for CustomBoardViewModel
        /// </summary>
        public CustomBoardViewModel(Colors aPlayer1Color, Colors aStartingColor, Algorithm aPlayer1Algorithm, Algorithm aPlayer2Algorithm)
        {
            windowState  = "Normal";
            windowWidth  = 640;
            windowHeight = 480;
            fieldSize    = 48;
            boardSize    = 384;

            isStartBtnClicked = false;

            selectedPanelItem = new FigureItem(Colors.NO_COLOR, FigureType.NO_FIGURE);
            mLastClickedField = -1;

            startBtnClicked       = new DelegateCommand(X => onStartBtnClicked());
            cancelBtnClicked      = new DelegateCommand(X => onCancelBtnClicked());
            deleteSelectedClicked = new DelegateCommand(X => onDeleteSelectedClicked());
            saveClicked           = new DelegateCommand(X => onSaveClicked());
            loadClicked           = new DelegateCommand(X => onLoadClicked());

            mChessBoardCollection  = new ObservableCollection <BoardItem>();
            mBlackFigureCollection = new ObservableCollection <BoardItem>();
            mWhiteFigureCollection = new ObservableCollection <BoardItem>();
            savedPositions         = new ObservableCollection <String>();
            mChessBoardModel       = new ChessBoardModel(aPlayer1Color, aStartingColor, aPlayer1Algorithm, aPlayer2Algorithm);

            mTablePositions = new TablePositions();

            setSavedPositions();
            setupCustomBoard();
        }
Beispiel #2
0
        //-----------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Constructor for CustomBoardViewModel
        /// </summary>
        public ChessBoardViewModel(ChessBoardModel aChessBoardModel)
        {
            mChessBoardModel = aChessBoardModel;
            mChessBoardModel.fieldClicked += new EventHandler <PutFigureOnTheTableEventArg>(onPutFigureOnTheTableEventArg);
            mChessBoardModel.setHighlight += new EventHandler <SetHighlightEventArg>(onSetHighlight);
            mChessBoardModel.setIsEnable  += new EventHandler <Boolean>(onSetIsEnable);

            windowState           = "Normal";
            windowWidth           = 640;
            windowHeight          = 480;
            fieldSize             = 48;
            boardSize             = 384;
            mChessBoardCollection = new ObservableCollection <BoardItem>();

            selectedPanelItem = new FigureItem(Colors.NO_COLOR, FigureType.NO_FIGURE);

            setupCustomBoard();
            mChessBoardModel.startModel();
        }
Beispiel #3
0
        public ChessBoardDto Map(ChessBoardModel model)
        {
            var pawn = MapPawns(model.Board);

            return(new ChessBoardDto
            {
                State = this.GetValue(model.State),
                PlayerOne = new PlayerDto
                {
                    Id = model.PlayerOneId,
                    Name = model.PlayerOneName
                },
                PlayerTwo = new PlayerDto
                {
                    Name = model.PlayerTwoName,
                    Id = model.PlayerTwoId
                },
                Player = model.CurrentPlayer,
                Pawns = pawn
            });
        }
        //-----------------------------------------------------------------------------------------------------------------------------------------

        private Boolean standardGameSetup()
        {
            mChessBoardModel = new ChessBoardModel(selectedColor, selectedStartingColor, playerOneAlgorithm, playerTwoAlgorithm);

            if (selectedColor == Colors.WHITE)
            {
                for (Int32 column = 0; column < 8; column++)                   // set Pawns
                {
                    mChessBoardModel.whiteFigures.Add(new ModelItem
                    {
                        index      = (6 * 8) + column,
                        x          = 6,
                        y          = column,
                        figureItem = new FigureItem(Colors.WHITE, FigureType.PAWN)
                    });

                    mChessBoardModel.blackFigures.Add(new ModelItem
                    {
                        index      = (1 * 8) + column,
                        x          = 1,
                        y          = column,
                        figureItem = new FigureItem(Colors.BLACK, FigureType.PAWN)
                    });
                }

                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 0,
                    x          = 7,
                    y          = 0,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.ROOK)
                });

                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 7,
                    x          = 7,
                    y          = 7,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.ROOK)
                });

                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 1,
                    x          = 7,
                    y          = 1,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.KNIGHT)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 6,
                    x          = 7,
                    y          = 6,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.KNIGHT)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 2,
                    x          = 7,
                    y          = 2,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.BISHOP)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 5,
                    x          = 7,
                    y          = 5,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.BISHOP)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 3,
                    x          = 7,
                    y          = 3,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.QUEEN)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 4,
                    x          = 7,
                    y          = 4,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.KING)
                });

                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 0,
                    x          = 0,
                    y          = 0,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.ROOK)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 7,
                    x          = 0,
                    y          = 7,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.ROOK)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 1,
                    x          = 0,
                    y          = 1,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.KNIGHT)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 6,
                    x          = 0,
                    y          = 6,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.KNIGHT)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 2,
                    x          = 0,
                    y          = 2,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.BISHOP)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 5,
                    x          = 0,
                    y          = 5,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.BISHOP)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 3,
                    x          = 0,
                    y          = 3,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.QUEEN)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 4,
                    x          = 0,
                    y          = 4,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.KING)
                });
            }
            else
            {
                for (Int32 column = 0; column < 8; column++)
                {
                    mChessBoardModel.blackFigures.Add(new ModelItem
                    {
                        index      = (6 * 8) + column,
                        x          = 6,
                        y          = column,
                        figureItem = new FigureItem(Colors.BLACK, FigureType.PAWN)
                    });

                    mChessBoardModel.whiteFigures.Add(new ModelItem
                    {
                        index      = (1 * 8) + column,
                        x          = 1,
                        y          = column,
                        figureItem = new FigureItem(Colors.WHITE, FigureType.PAWN)
                    });
                }

                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 0,
                    x          = 7,
                    y          = 0,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.ROOK)
                });

                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 7,
                    x          = 7,
                    y          = 7,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.ROOK)
                });

                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 1,
                    x          = 7,
                    y          = 1,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.KNIGHT)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 6,
                    x          = 7,
                    y          = 6,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.KNIGHT)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 2,
                    x          = 7,
                    y          = 2,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.BISHOP)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 5,
                    x          = 7,
                    y          = 5,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.BISHOP)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 3,
                    x          = 7,
                    y          = 3,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.KING)
                });
                mChessBoardModel.blackFigures.Add(new ModelItem
                {
                    index      = (7 * 8) + 4,
                    x          = 7,
                    y          = 4,
                    figureItem = new FigureItem(Colors.BLACK, FigureType.QUEEN)
                });

                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 0,
                    x          = 0,
                    y          = 0,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.ROOK)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 7,
                    x          = 0,
                    y          = 7,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.ROOK)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 1,
                    x          = 0,
                    y          = 1,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.KNIGHT)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 6,
                    x          = 0,
                    y          = 6,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.KNIGHT)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 2,
                    x          = 0,
                    y          = 2,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.BISHOP)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 5,
                    x          = 0,
                    y          = 5,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.BISHOP)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 3,
                    x          = 0,
                    y          = 3,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.KING)
                });
                mChessBoardModel.whiteFigures.Add(new ModelItem
                {
                    index      = (0 * 8) + 4,
                    x          = 0,
                    y          = 4,
                    figureItem = new FigureItem(Colors.WHITE, FigureType.QUEEN)
                });
            }

            return(true);
        }