public bool IsHorizontalSequenceCompletedOfSameShapeByRow(int rowIndex, Cell.TypeShape typeShape) { for (int columnIndex = 0; columnIndex < ColumnsLength; columnIndex++) { var cell = GetCellByPosition(rowIndex, columnIndex); if (!cell.IsValidMarked(typeShape)) return false; } return true; }
public bool IsDiagonalSequenceCompletedOfSameShapeByDirection(DiagonalDirection diagonalDirection, Cell.TypeShape typeShape) { var columnIndex = (diagonalDirection == DiagonalDirection.LeftTopToRightBottom) ? 0 : (ColumnsLength - 1); for (int rowIndex = 0; rowIndex < RowsLength; rowIndex++) { var cell = GetCellByPosition(rowIndex, columnIndex); if (!cell.IsValidMarked(typeShape)) return false; columnIndex = GetNextColumnDiagonalIndex(diagonalDirection, columnIndex); } return true; }
public void MarkCellByPosition(int rowIndex, int columnIndex, Cell.TypeShape typeShape) { GetCellByPosition(rowIndex, columnIndex).Mark(typeShape); }
private void InitializeEachCell() { Cells = new Cell[RowsLength, ColumnsLength]; for (int rowIndex = 0; rowIndex < RowsLength; rowIndex++) { for (int columnIndex = 0; columnIndex < ColumnsLength; columnIndex++) { Cells[rowIndex, columnIndex] = new Cell(); } } }
public bool IsValidMarked(Cell.TypeShape typeShape) { return IsMarked() && (MarkedBy == typeShape); }