Example #1
0
        protected override UITableViewCell GetOrCreateCellFor(UITableView tableView, NSIndexPath indexPath, object item)
        {
            var reuse = tableView.DequeueReusableCell(CellIdentifier);

            if (reuse != null)
            {
                return(reuse);
            }

            var cell = CellCreator(tableView, indexPath, item);

            CellModifier?.Invoke(cell);
            return(cell);
        }
Example #2
0
        private List <List <BoardCell> > GenerateBoard()
        {
            List <List <BoardCell> > backingBoard = new List <List <BoardCell> >();

            for (var rowIndex = 0; rowIndex < boardSize; rowIndex++)
            {
                backingBoard.Add(new List <BoardCell>());

                for (var columnIndex = 0; columnIndex < boardSize; columnIndex++)
                {
                    CellModifier modifier = GetModifier(rowIndex, columnIndex);

                    backingBoard[rowIndex].Add(new BoardCell(rowIndex, columnIndex, modifier));
                }
            }

            return(backingBoard);
        }
Example #3
0
        private CellModifier GetCellModifier(int rowDistanceFromEdge, int columnDistanceFromEdge)
        {
            CellModifier threeWordScore   = new CellModifier(true, 3);
            CellModifier twoWordScore     = new CellModifier(true, 2);
            CellModifier threeLetterScore = new CellModifier(false, 3);
            CellModifier twoLetterScore   = new CellModifier(false, 2);

            switch (rowDistanceFromEdge)
            {
            case 0:
                switch (columnDistanceFromEdge)
                {
                case 0: return(threeWordScore);

                case 3: return(twoLetterScore);

                case 7: return(threeWordScore);

                default: return(null);
                }

            case 1:
                switch (columnDistanceFromEdge)
                {
                case 1: return(twoWordScore);

                case 5: return(threeLetterScore);

                default: return(null);
                }

            case 2:
                switch (columnDistanceFromEdge)
                {
                case 2: return(twoWordScore);

                case 6: return(twoLetterScore);

                default: return(null);
                }

            case 3:
                switch (columnDistanceFromEdge)
                {
                case 0: return(twoLetterScore);

                case 3: return(twoWordScore);

                case 7: return(twoLetterScore);

                default: return(null);
                }

            case 4:
                switch (columnDistanceFromEdge)
                {
                case 4: return(twoWordScore);

                default: return(null);
                }

            case 5:
                switch (columnDistanceFromEdge)
                {
                case 1: return(threeLetterScore);

                case 5: return(threeLetterScore);

                default: return(null);
                }

            case 6:
                switch (columnDistanceFromEdge)
                {
                case 2: return(twoLetterScore);

                case 6: return(twoLetterScore);

                default: return(null);
                }

            case 7:
                switch (columnDistanceFromEdge)
                {
                case 0: return(threeWordScore);

                case 3: return(twoLetterScore);

                default: return(null);
                }

            default: return(null);
            }
        }