private PieceType GetWinnerInOneLine(IBoard board, IPositions line)
        {
            var count = 0;
            var pre   = PieceType.Empty;

            foreach (var position in line.Positions)
            {
                var piece = board.Get(position);
                if (!pre.Equals(PieceType.Empty) && pre.Equals(piece))
                {
                    count++;
                    if (count >= _context.NumOfPiecesToWin)
                    {
                        return(piece);
                    }
                }
                else if (!pre.Equals(piece))
                {
                    count = 1;
                }
                pre = piece;
            }

            return(PieceType.Empty);
        }
Exemple #2
0
 public EmployeesController(IEmployees pIEmployees, IBusinessUnits pIBusinessUnits, IDepartments pIDepartments, IPositions pIPositions, IMEmployees pIMEmployees)
 {
     lIEmployees     = pIEmployees;
     lIBusinessUnits = pIBusinessUnits;
     lIDepartments   = pIDepartments;
     lIPositions     = pIPositions;
     lIMEmployees    = pIMEmployees;
 }
Exemple #3
0
 public ConfigurationController(IBusinessUnits BParam, IDepartments DParam, IidentityCodes idCodes, IJobtitles jParam, IPositions pParam, IPrefixes prparam, IEmploymentStatus status, ILeaveManagement lParam)
 {
     this.BusinessRepo = BParam;
     this.DeptRepo     = DParam;
     this.IdentityRepo = idCodes;
     this.JobRepo      = jParam;
     this.positionRepo = pParam;
     this.prefixRepo   = prparam;
     this.statusRepo   = status;
     this.leaveRepo    = lParam;
 }
Exemple #4
0
        public string DumpPositions(IPositions positions)
        {
            var sb = new StringBuilder();

            sb.AppendLine($"Positions for account {this}:");

            foreach (var p in positions)
            {
                sb.Append(" - ");
                sb.AppendLine(p.ToString());
            }
            return(sb.ToString());
        }
Exemple #5
0
 public PageController(IAssetsTypes pIAssetsTypes, IAssetsGroups pIAssetsGroups, IAssetsItems pIAssetsItems, IBusinessUnits pIBusinessUnits, IDepartments pIDepartments, IEmployees pIEmployees, IPositions pIPositions, IMAssetsItems pIMAssetsItems, IMAuditsTrails pIMAuditsTrails, IMEmployees pIMEmployees, IMMRs pIMMRs)
 {
     #region BLO
     lIAssetsTypes   = pIAssetsTypes;
     lIAssetsGroups  = pIAssetsGroups;
     lIAssetsItems   = pIAssetsItems;
     lIBusinessUnits = pIBusinessUnits;
     lIDepartments   = pIDepartments;
     lIEmployees     = pIEmployees;
     lIPositions     = pIPositions;
     #endregion
     #region Models
     lIMAssetsItems  = pIMAssetsItems;
     lIMAuditsTrails = pIMAuditsTrails;
     lIMEmployees    = pIMEmployees;
     lIMMRs          = pIMMRs;
     #endregion
 }
Exemple #6
0
        internal IEnumerable <IMatch> MatchInternal(IBoard board, IPositions line, HashSet <IPattern> patterns)
        {
            if (board.Count == 0)
            {
                // Assuming there is no pattern when no piece on the board.
                yield break;
            }

            // Assuming all patterns are of the same size.
            int patternSize        = patterns.First().Pieces.Count();
            int highestBase        = (int)Math.Pow(Base, patternSize - 1);
            int currentHash        = 0;
            Queue <Position> queue = new Queue <Position>();

            for (int index = 0; index < line.Positions.Count; index++)
            {
                Position position = line.Positions[index];

                currentHash = Add(currentHash, board.Get(position));
                queue.Enqueue(position);

                Debug.Assert(queue.Count <= patternSize);

                if (queue.Count == patternSize)
                {
                    IPattern pattern;
                    if (hashAndPattern.TryGetValue(currentHash, out pattern) && patterns.Contains(pattern))
                    {
                        if (IsPatternInValidPosition(pattern.PatternPositionType, index, patternSize, line.Positions.Count))
                        {
                            yield return(new Match(pattern, queue.ToList()));
                        }
                    }

                    Position headPosition = queue.Dequeue();
                    currentHash = Remove(currentHash, highestBase, board.Get(headPosition));
                }
            }
        }
Exemple #7
0
 public PositionsController(IPositions positions)
 {
     _positions = positions;
 }
Exemple #8
0
 static PositionBUS()
 {
     pos_act = new PositionsAct();
 }
Exemple #9
0
 public void BedAndISA(IPositions positions)
 {
     BedAndISA((Positions)positions);
 }