Exemple #1
0
        //-----------------------------------------------------------------------------------------------------------------------------------------

        private void onFieldClicked(Object aSender, FieldClickedEventArg aArguments)
        {
            mChessBoardModel.moveFigure(new ModelItem
            {
                index      = aArguments.index,
                figureItem = aArguments.figureItem,
                x          = aArguments.x,
                y          = aArguments.y
            });
        }
        //-----------------------------------------------------------------------------------------------------------------------------------------

        private void onPanelClicked(Object aSender, FieldClickedEventArg aArguments)
        {
            if (selectedFigureType != FigureType.NO_FIGURE)
            {
                mFigureCollection.Where(X => X.figureItem.figureType == selectedFigureType).FirstOrDefault().highlightColor = Colors.NO_COLOR;
            }

            selectedFigureType = aArguments.figureItem.figureType;
            mFigureCollection.Where(X => X.figureItem.figureType == aArguments.figureItem.figureType).FirstOrDefault().highlightColor = Colors.BLUE;
        }
        //-----------------------------------------------------------------------------------------------------------------------------------------

        private void onPanelClicked(Object aSender, FieldClickedEventArg aArguments)
        {
            if (selectedPanelItem.color == aArguments.figureItem.color && selectedPanelItem.figureType == aArguments.figureItem.figureType)
            {
                mBlackFigureCollection.Concat(mWhiteFigureCollection).Where(X => X.figureItem.color == selectedPanelItem.color && X.figureItem.figureType == selectedPanelItem.figureType).FirstOrDefault().highlightColor = Colors.NO_COLOR;
                selectedPanelItem = new FigureItem(Colors.NO_COLOR, FigureType.NO_FIGURE);
                return;
            }
            if (selectedPanelItem.figureType != FigureType.NO_FIGURE)
            {
                mBlackFigureCollection.Concat(mWhiteFigureCollection).Where(X => X.figureItem.color == selectedPanelItem.color && X.figureItem.figureType == selectedPanelItem.figureType).FirstOrDefault().highlightColor = Colors.NO_COLOR;
            }

            selectedPanelItem = new FigureItem(aArguments.figureItem);

            mBlackFigureCollection.Concat(mWhiteFigureCollection).Where(X => X.figureItem.color == selectedPanelItem.color && X.figureItem.figureType == selectedPanelItem.figureType).FirstOrDefault().highlightColor = Colors.RED;
        }
        //-----------------------------------------------------------------------------------------------------------------------------------------

        private void onFieldClicked(Object aSender, FieldClickedEventArg aArguments)
        {
            if (mLastClickedField == aArguments.index)               // Same Field?
            {
                if (selectedPanelItem.figureType == FigureType.NO_FIGURE)
                {
                    mChessBoardCollection[mLastClickedField].highlightColor = Colors.NO_COLOR;
                    mLastClickedField = -1;
                    return;
                }
                if (aArguments.figureItem.color == selectedPanelItem.color && aArguments.figureItem.figureType == selectedPanelItem.figureType)                   //Same Figure?
                {
                    mChessBoardCollection[mLastClickedField].highlightColor = Colors.NO_COLOR;
                    mLastClickedField = -1;
                }
                else                                                                                          // We put another Figure instead of it
                {
                    if (mChessBoardCollection[mLastClickedField].figureItem.color == selectedPanelItem.color) // is it from the same Color?
                    {
                        if (selectedPanelItem.color == Colors.WHITE)                                          // Is that White?
                        {
                            mChessBoardModel.whiteFigures.Where(X => X.index == mLastClickedField).FirstOrDefault().figureItem = new FigureItem(selectedPanelItem);
                            mChessBoardCollection[aArguments.index].figureItem = new FigureItem(selectedPanelItem);
                        }
                        else                         // Is That Black?
                        {
                            mChessBoardModel.blackFigures.Where(X => X.index == mLastClickedField).FirstOrDefault().figureItem = new FigureItem(selectedPanelItem);
                            mChessBoardCollection[aArguments.index].figureItem = new FigureItem(selectedPanelItem);
                        }
                    }
                    else
                    {
                        if (selectedPanelItem.color == Colors.WHITE)                           // Is that White?
                        {
                            ModelItem oldItem = mChessBoardModel.blackFigures.Where(X => X.index == mLastClickedField).FirstOrDefault();
                            mChessBoardModel.blackFigures.Remove(oldItem);

                            mChessBoardModel.whiteFigures.Add(new ModelItem
                            {
                                figureItem = new FigureItem(selectedPanelItem),
                                x          = aArguments.x,
                                y          = aArguments.y,
                                index      = aArguments.index
                            });
                            mChessBoardCollection[aArguments.index].figureItem = new FigureItem(selectedPanelItem);
                        }
                        else                         // is that Black?
                        {
                            ModelItem oldItem = mChessBoardModel.whiteFigures.Where(X => X.index == mLastClickedField).FirstOrDefault();
                            mChessBoardModel.whiteFigures.Remove(oldItem);

                            mChessBoardModel.blackFigures.Add(new ModelItem
                            {
                                figureItem = new FigureItem(selectedPanelItem),
                                x          = aArguments.x,
                                y          = aArguments.y,
                                index      = aArguments.index
                            });
                            mChessBoardCollection[aArguments.index].figureItem = new FigureItem(selectedPanelItem);
                        }
                    }
                }
                return;
            }

            if (selectedPanelItem.figureType == FigureType.NO_FIGURE)
            {
                if (aArguments.figureItem.figureType != FigureType.NO_FIGURE)
                {
                    if (mLastClickedField != -1)
                    {
                        mChessBoardCollection[mLastClickedField].highlightColor = Colors.NO_COLOR;
                    }

                    mChessBoardCollection[aArguments.index].highlightColor = Colors.BLUE;
                    mLastClickedField = aArguments.index;
                }
                return;
            }

            if (mLastClickedField != -1)               // last selected item becomes non selected
            {
                mChessBoardCollection[mLastClickedField].highlightColor = Colors.NO_COLOR;
            }
            mLastClickedField = aArguments.index;

            if (aArguments.figureItem.color == selectedPanelItem.color && aArguments.figureItem.figureType == selectedPanelItem.figureType)
            {
                mChessBoardCollection[aArguments.index].highlightColor = Colors.RED;
                mLastClickedField = aArguments.index;
                return;
            }

            if (aArguments.figureItem.figureType == FigureType.NO_FIGURE)
            {
                if (selectedPanelItem.color == Colors.WHITE)
                {
                    mChessBoardModel.whiteFigures.Add(new ModelItem
                    {
                        figureItem = new FigureItem(selectedPanelItem),
                        x          = aArguments.x,
                        y          = aArguments.y,
                        index      = aArguments.index
                    });
                }
                else
                {
                    mChessBoardModel.blackFigures.Add(new ModelItem
                    {
                        figureItem = new FigureItem(selectedPanelItem),
                        x          = aArguments.x,
                        y          = aArguments.y,
                        index      = aArguments.index
                    });
                }
                mChessBoardCollection[aArguments.index].highlightColor = Colors.RED;
                mChessBoardCollection[aArguments.index].figureItem     = new FigureItem(selectedPanelItem);
                return;
            }

            if (selectedPanelItem.color != aArguments.figureItem.color)
            {
                if (aArguments.figureItem.color == Colors.WHITE)
                {
                    ModelItem oldItem = mChessBoardModel.whiteFigures.Where(X => X.index == mLastClickedField).FirstOrDefault();
                    mChessBoardModel.whiteFigures.Remove(oldItem);

                    mChessBoardModel.blackFigures.Add(new ModelItem
                    {
                        figureItem = new FigureItem(selectedPanelItem),
                        x          = aArguments.x,
                        y          = aArguments.y,
                        index      = aArguments.index
                    });
                }
                else
                {
                    ModelItem oldItem = mChessBoardModel.blackFigures.Where(X => X.index == mLastClickedField).FirstOrDefault();
                    mChessBoardModel.blackFigures.Remove(oldItem);

                    mChessBoardModel.whiteFigures.Add(new ModelItem
                    {
                        figureItem = new FigureItem(selectedPanelItem),
                        x          = aArguments.x,
                        y          = aArguments.y,
                        index      = aArguments.index
                    });
                }
                mChessBoardCollection[aArguments.index].highlightColor = Colors.RED;
                mChessBoardCollection[aArguments.index].figureItem     = new FigureItem(selectedPanelItem);
                return;
            }

            if (aArguments.figureItem.color == Colors.WHITE)
            {
                mChessBoardModel.whiteFigures.Where(X => X.index == mLastClickedField).FirstOrDefault().figureItem = new FigureItem(selectedPanelItem);
            }
            else
            {
                mChessBoardModel.blackFigures.Where(X => X.index == mLastClickedField).FirstOrDefault().figureItem = new FigureItem(selectedPanelItem);
            }
            mChessBoardCollection[aArguments.index].highlightColor = Colors.RED;
            mChessBoardCollection[aArguments.index].figureItem     = new FigureItem(selectedPanelItem);
        }