public bool ActionAvailable()
        {
            var builder = new AvailabilityChainBuilder(new IsPieceInCurrentLocationLink(_location, _board))
                          .AddNextLink(new HasPlayerEmptySlotForPieceLink(_playerId, _board.Players));

            return(builder.Build().ValidateLink());
        }
Beispiel #2
0
        public bool ActionAvailable()
        {
            var builder = new AvailabilityChainBuilder(new IsNoPiecePlacedLink(_location, _board))
                          .AddNextLink(new IsPlayerCarryingPieceLink(_playerId, _board.Players));

            return(builder.Build().ValidateLink());
        }
        public bool ActionAvailable()
        {
            var builder =
                new AvailabilityChainBuilder(new IsInsideBoardLink(location, direction, board.Width, board.Height))
                .AddNextLink(new IsAvailableTeamAreaLink(location, direction, board.GoalAreaSize,
                                                         board.TaskAreaSize, team))
                .AddNextLink(new IsFieldPlayerUnoccupiedLink(location, direction, board));

            return(builder.Build().ValidateLink());
        }
        public bool ActionAvailable()
        {
            var builder = new AvailabilityChainBuilder(new IsInsideBoardLink(location, direction, board.Width, board.Height));

            return(builder.Build().ValidateLink());
        }
Beispiel #5
0
        public bool ActionAvailable()
        {
            var builder = new AvailabilityChainBuilder(new IsPlayerCarryingPieceLink(_playerId, _players));

            return(builder.Build().ValidateLink());
        }