RozdziałyPodstawowe konstrukcje językaSudoku - poprawność planszy

Zadanie: Sprawdzanie poprawności planszy Sudoku

Zasady gry Sudoku

Sudoku to gra logiczna, której celem jest wypełnienie 9x9 planszy cyframi od 1 do 9 w taki sposób, aby każda kolumna, każdy wiersz oraz każde z dziewięciu “małych” kwadratów 3x3 zawierały wszystkie cyfry od 1 do 9 bez powtórzeń.

Opis zadania

Twoim zadaniem jest napisanie funkcji check_sudoku_board, która sprawdza poprawność planszy sudoku. Funkcja powinna przyjmować planszę jako dwuwymiarową tablicę liczb całkowitych i zwracać wartość logiczną true jeśli plansza jest poprawna, lub false w przeciwnym razie.

fn check_sudoku_board(board: [[u8; 9]; 9]) -> bool {
    todo!()
}

Opcjonalnie: Napisz testy jednostkowe sprawdzające poprawność działania funkcji, wykorzystując przykładowe plansze sudoku. Sprawdź również przypadki brzegowe, takie jak plansze zawierające błędne wartości. Więcej o testach dowiesz się w sekcji Testy jednostkowe.

Przykładowa plansza sudoku

Plansza sudoku jest reprezentowana jako dwuwymiarowa tablica liczb całkowitych. Puste pola są oznaczone jako 0.

let board = [
    [5, 3, 0, 0, 7, 0, 0, 0, 0],
    [6, 0, 0, 1, 9, 5, 0, 0, 0],
    [0, 9, 8, 0, 0, 0, 0, 6, 0],
    [8, 0, 0, 0, 6, 0, 0, 0, 3],
    [4, 0, 0, 8, 0, 3, 0, 0, 1],
    [7, 0, 0, 0, 2, 0, 0, 0, 6],
    [0, 6, 0, 0, 0, 0, 2, 8, 0],
    [0, 0, 0, 4, 1, 9, 0, 0, 5],
    [0, 0, 0, 0, 8, 0, 0, 7, 9]
];

Wymagania

  1. Sprawdź, czy wszystkie pola zawierają cyfry z przedziału od 0 do 9.
  2. Sprawdź, czy każda kolumna zawiera unikalne cyfry od 1 do 9.
  3. Sprawdź, czy każdy wiersz zawiera unikalne cyfry od 1 do 9.
  4. Sprawdź, czy każde z dziewięciu “małych” kwadratów (3x3) zawiera unikalne cyfry od 1 do 9.