private void SelectSecondTile(ISlotModel newSelectedSlot) { selectedSlots.Add(newSelectedSlot); if (AreSlotsNeighbors()) { OnSwap(); } DeselectSlots(); }
public IBoardModel Create(ISlotModelFactory slotFactory, int rows, int columns) { ISlotModel[,] slots = new ISlotModel[rows, columns]; for (int r = 0; r < rows; r++) { for (int c = 0; c < columns; c++) { slots[r, c] = slotFactory.Create(new Vector2(r, c)); } } return(new BoardModel(slots)); }
public void SelectedSlot(ISlotModel newSelected) { if (IsntAnySlotSelected()) { SelectFirstTile(newSelected); } else if (IsSelectedTheSameTile(newSelected)) { DeselectSlots(); } else { SelectSecondTile(newSelected); } }
private void SearchColumns(IBoardModel board) { List <ISlotModel> matches = new List <ISlotModel>(); for (int c = 0; c < board.Columns; c++) { for (int r = 0; r < board.Rows; r++) { currentSlot = board.Slots[r, c]; CheckTileInSequence(matches); previousSlot = currentSlot; } CheckIfSequenceIsLongEnough(matches); matches.Clear(); } }
private void HandleClickedSlot(object sender, EventArgs e) { ISlotModel slot = sender as ISlotModel; model.Interaction.SelectedSlot(slot); }
public ISlotController Create(ISlotModel model, ISlotView view) { return(new SlotController(model, view)); }
public SwapEventArgs(ISlotModel slot1, ISlotModel slot2) { Slot1 = slot1; Slot2 = slot2; }
private bool IsSelectedTheSameTile(ISlotModel newSelectedTile) { return(selectedSlots?.First() == newSelectedTile); }
private void SelectFirstTile(ISlotModel newSelectedSlot) { selectedSlots.Add(newSelectedSlot); }