Cześć!
Lubisz łamigłówki? Najbardziej Sudoku? 🤔
Co Ty na to by stworzyć własne? 😉

Sudoku to popularna łamigłówka z gazet i aplikacji mobilnych. Plansza sudoku to siatka 9×9, gdzie gracz musi wpisać cyfry od 1 do 9, tak by każda z nich występowała tylko raz w danym wierszu, tylko raz w danej kolumnie i tylko raz w blokach 3×3 (pola otoczone pogrubioną linią). Na początku gry kilka pól jest już wypełnionych, to tzw. dane. Dobrze przygotowane Sudoku ma tylko jedno możliwe rozwiązanie.
Działanie programu
Gdy uruchomisz program sudoku.py, uzyskasz następujący rezultat:
Sudoku, autor: Al Sweigart, al@inventwithpython.com
--ucięte--
Podaj ruch lub wpisz RESET, NOWA, COFNIJ, POCZĄTEK lub KONIEC:
(Przykładowy ruch to "B4 9".)
--ucięte--
Jak to działa?
Obiekty klasy SudokuGrid to struktury danych przedstawiające planszę sudoku. Możesz wywoływać metody tej klasy, by zmieniać planszę lub uzyskać na jej temat informacje. Na przykład metoda makeMove() powoduje umieszczenie liczby na planszy, metoda resetGrid() — przywrócenie planszy do jej stanu początkowego, a metoda isSolved() — zwrócenie wartości True, jeśli gracz poprawnie rozwiązał łamigłówkę.
Główna część programu, która zaczyna się w linii 141., używa obiektu klasy SudokuGrid i jej metod do obsługi tej gry, ale równie dobrze możesz skopiować i wkleić tę klasę do innych swoich programów z sudoku, by skorzystać z jej funkcji.

Odkrywanie programu
Postaraj się znaleźć odpowiedzi na poniżej podane pytania. Spróbuj wprowadzić zmiany w kodzie i uruchomić ponownie program, by zobaczyć, jaki efekt to przyniosło.
1. Co się stanie, gdy usuniesz plik sudokupuzzles.txt lub zmienisz jego nazwę i ponownie uruchomisz program?
2. Co się stanie, gdy zamienisz str(y+1) w linii 91. na str(y)?
3. Co się stanie, gdy zamienisz if y == 2 or y == 5: w linii 99. na if y == 1 or y == 6:?