R/sample_boards.R

Defines functions sample_boards

Documented in sample_boards

#' Sample sudoku grids
#'
#' This function displays a list of 9 sudoku boards which you can try to solve, with
#' board0 being the easiest and board9 the hardest.
#'
#' @return a list of boards
#' @export
#' @examples
#' b1 <- sample_boards()[[1]]
#' b1
#'
#' sample_boards()[c(1:5)]
#'


sample_boards <- function() {
  all_boards = list(
    board0 = matrix(
      data = c(
        2, 3, 0, 4, 9, 7, 0, 8, 0,
        0, 9, 5, 0, 0, 6, 4, 0, 7,
        0, 6, 0, 5, 8, 0, 0, 1, 2,
        0, 7, 8, 3, 0, 4, 0, 0, 9,
        0, 4, 0, 0, 0, 0, 0, 5, 0,
        0, 0, 2, 8, 1, 9, 3, 7, 0,
        0, 8, 6, 2, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 7, 0, 0, 0, 0,
        7, 0, 0, 0, 3, 1, 0, 6, 5
      ),
      byrow = TRUE, ncol = 9
    ),

    board1 = matrix(data =
                       c(5, 6, 0, 8, 4, 7, 0, 0, 0,
                         3, 0, 9, 0, 0, 0, 6, 0, 0,
                         0, 0, 8, 0, 0, 0, 0, 0, 0,
                         0, 1, 0, 0, 8, 0, 0, 4, 0,
                         7, 9, 0, 6, 0, 2, 0, 1, 8,
                         0, 5, 0, 0, 3, 0, 0, 9, 0,
                         0, 0, 0, 0, 0, 0, 2, 0, 0,
                         0, 0, 6, 0, 0, 0, 8, 0, 7,
                         0, 0, 0, 3, 1, 6, 0, 5, 9
                       ),
                     ncol = 9),


    board2 = matrix(
      data = c(
        3, 2, 0, 8, 0, 7, 0, 9, 6,
        0, 0, 0, 0, 6, 0, 0, 0, 0,
        0, 1, 0, 9, 0, 2, 0, 4, 0,
        8, 0, 2, 0, 0, 0, 5, 0, 1,
        0, 3, 0, 0, 0, 0, 0, 8, 0,
        1, 0, 4, 0, 0, 0, 9, 0, 7,
        0, 6, 0, 1, 0, 4, 0, 7, 0,
        0, 0, 0, 0, 5, 0, 0, 0, 0,
        2, 4, 0, 6, 0, 9, 0, 5, 3
      ),
      ncol = 9
    ),

    board3 = matrix(
      data = c(
        0, 0, 4, 2, 7, 6, 0, 3, 0,
        0, 5, 7, 1, 0, 0, 0, 4, 9,
        0, 0, 0, 9, 0, 0, 0, 0, 0,
        3, 0, 0, 0, 0, 0, 9, 6, 0,
        0, 0, 0, 0, 0, 7, 1, 8, 5,
        0, 0, 0, 0, 2, 0, 3, 0, 4,
        0, 0, 0, 7, 0, 1, 0, 9, 0,
        0, 0, 0, 6, 0, 0, 2, 1, 0,
        1, 0, 6, 0, 8, 0, 0, 0, 0
      ),
      byrow = TRUE, ncol = 9),



    board4 = matrix(data = c(
      0, 0, 0, 0, 0, 4, 7, 8, 3,
      4, 6, 0, 0, 8, 3, 0, 0, 0,
      7, 0, 0, 0, 0, 0, 4, 0, 0,
      0, 0, 1, 0, 0, 0, 9, 0, 5,
      0, 0, 0, 2, 0, 9, 0, 0, 0,
      5, 0, 6, 0, 0, 0, 3, 0, 0,
      0, 0, 7, 0, 0, 0, 0, 0, 8,
      0, 0, 0, 8, 6, 0, 0, 2, 7,
      6, 8, 5, 3, 0, 0, 0, 0, 0
    ),
    byrow = TRUE,
    ncol = 9
    ),


    board5 = matrix(data = c(
      5, 1, 0, 0, 0, 7, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 2, 7, 0,
      0, 0, 7, 8, 0, 0, 0, 4, 0,
      6, 0, 0, 0, 5, 0, 0, 0, 3,
      0, 0, 0, 1, 2, 3, 0, 0, 0,
      2, 0, 0, 0, 4, 0, 0, 0, 8,
      0, 4, 0, 0, 0, 1, 7, 0, 0,
      0, 3, 8, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 9, 0, 0, 0, 8, 2
    ),
    byrow = TRUE,
    ncol = 9
    ),


    board6 = matrix(
      data =
        c(0, 3, 0, 0, 0, 0, 4, 0, 0,
          0, 8, 7, 0, 0, 0, 2, 0, 0,
          6, 4, 0, 0, 0, 1, 0, 0, 0,
          0, 0, 0, 0, 6, 0, 0, 0, 5,
          0, 6, 0, 0, 0, 9, 0, 0, 0,
          3, 1, 5, 0, 2, 0, 0, 0, 0,
          7, 0, 0, 3, 0, 0, 0, 9, 0,
          0, 0, 0, 7, 4, 0, 0, 1, 0,
          0, 0, 0, 0, 5, 0, 0, 7, 0),
      byrow = TRUE,
      ncol = 9
    ),


    # let's try some sudokus labeled 'hard' in sudoku.com
    board7 = matrix(
      data =
        c(0, 2, 0, 5, 4, 0, 0, 1, 0,
          0, 0, 0, 8, 0, 1, 0, 5, 0,
          5, 0, 0, 6, 7, 0, 0, 0, 4,
          4, 9, 0, 0, 0, 0, 0, 0, 2,
          0, 0, 0, 0, 0, 0, 7, 4, 5,
          0, 0, 3, 0, 0, 0, 0, 0, 0,
          0, 6, 0, 0, 0, 0, 3, 0, 8,
          1, 0, 0, 0, 6, 3, 0, 0, 0,
          0, 0, 4, 0, 0, 0, 0, 0, 0),
      byrow = TRUE, ncol = 9
    ),

    # Naah let's try 'expert' level:
    board8 = matrix(
      data =
        c(0, 8, 4, 0, 3, 0, 0, 0, 0,
          0, 0, 0, 6, 0, 9, 0, 0, 1,
          0, 0, 3, 0, 0, 0, 0, 0, 0,
          0, 0, 9, 1, 0, 0, 7, 0, 0,
          0, 0, 0, 0, 0, 0, 4, 0, 5,
          0, 6, 1, 0, 0, 4, 0, 0, 0,
          0, 0, 0, 0, 0, 3, 0, 8, 4,
          7, 0, 0, 2, 0, 0, 0, 9, 0,
          8, 0, 0, 0, 0, 0, 0, 0, 0),
      byrow = TRUE, ncol = 9
    )
  )

  all_boards
}
KennedyMwavu/SudokuR documentation built on Jan. 2, 2023, 9:07 p.m.