//----------------------------------------------------------------------------------------------------------------------------------------- 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); }