Beispiel #1
0
        public void RollForTile()
        {
            ActiveTile = Pyramid.ActivateTile(new TileRoll());
            Pyramid.FillNextEmptyPyramidPosition(TopDirectionTile, SetAsideTile);
            UpdateDirectionTiles();

            while (Pyramid.HasEmptyPyramidPositions)
            {
                Pyramid.FillNextEmptyPyramidPosition(TopDirectionTile, SetAsideTile);
            }

            SetAsideTile = ActiveTile;

            #region Local Functions
            void UpdateDirectionTiles()
            {
                var tempTopTile = TopDirectionTile;

                TopDirectionTile    = BottomDirectionTile;
                BottomDirectionTile = tempTopTile;
                BottomDirectionTile.FlipDirection();
            }

            #endregion
        }
Beispiel #2
0
 public Game(Guid id, GameSettings settings, Pyramid pyramid, PyramidTile setAsideTile, DirectionTile topDirectionTile, DirectionTile bottomDirectionTile, PyramidTile?activeTile)
     : base(id)
 {
     Settings            = settings;
     Pyramid             = pyramid ?? throw new ArgumentNullException(nameof(pyramid));
     SetAsideTile        = setAsideTile ?? throw new ArgumentNullException(nameof(SetAsideTile));
     TopDirectionTile    = topDirectionTile ?? throw new ArgumentNullException(nameof(topDirectionTile));
     BottomDirectionTile = bottomDirectionTile ?? throw new ArgumentNullException(nameof(bottomDirectionTile));
     ActiveTile          = activeTile;
 }