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();
        }
    }
Пример #5
0
    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));
 }
Пример #7
0
 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);
 }