public void TryAddDomino(DominoModel domino, DominoModel edgeDomino)
        {
            var edge = edgeDomino == PreviousDomino ? EdgeToAdd.Left : EdgeToAdd.Right;

            switch (edge)
            {
            case EdgeToAdd.Left:
            {
                MovePrevDomino(domino);
                Dominos.Prepend(domino);
                TableCollectionDominoAdded?.Invoke(domino);
                LeftNumber = domino.First == LeftNumber ? domino.Second : domino.First;
                break;
            }

            case EdgeToAdd.Right:
            {
                MoveNextDomino(domino);
                Dominos.Add(domino);
                TableCollectionDominoAdded?.Invoke(domino);
                RightNumber = domino.First == RightNumber ? domino.Second : domino.First;
                break;
            }
            }
        }
Esempio n. 2
0
        public void AddToRight(DominoModel domino)
        {
            if (IsDominoOkForRight(domino))
            {
                if (RightNumber != domino.First)
                {
                    domino.SwapValues();
                }

                RightNumber = domino.Second;
                Dominos.Add(domino);
            }
        }