/Haskell-Sudoku

Sudoku Generator/Solver

Primary LanguageHaskell

Генериране и решаване на Судоку

Под дъска за судоку разбираме 9 списъка от списъци със 9 Int-a

пример:

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]]

Генериране на дъска за решаване:

   > genBoard (трудност)

Трудността е колко празни елементи да има на дъската: от 0 (генериране на решена дъска) до 69 (генериране на дъска със само 11 елемента). По-голямо число значи по-трудна дъска. Невалидни стойности ще бъдат закръглени до най-близката валидна.

Решаване на дадена дъска

  > solve [дъска]

Дъската трябва да е зададена по гореспоменатия начин. Ако не е валидна по някаква причина, ще върне [[]], ако е валидна ще я реши