# Sudoku — geri izlemeli çözücü, canlı animasyonla ![Sudoku](../../medya/sudoku.png) Boş hücreye 1–9 arasındaki ilk uygun rakamı koyar ve ilerler. Çıkmaza girerse bir önceki hücreye döner (**geri izleme**) ve oradaki bir sonraki rakamı dener. Her adım ekranda görünür: * **beyaz** — bulmacada verilen rakam * **camgöbeği** — çözücünün koyduğu, henüz kesinleşmemiş rakam * **sarı** — şu an denenen hücre · **kırmızı ✗** — geri alınan hücre * **yeşil** — çözüm bulunduktan sonra kesinleşen rakamlar ```bash kabalang calistir sudoku.kbl # animasyonlu (~10 sn) kabalang calistir sudoku.kbl -- --hizli # yalnız sonuç kabalang calistir sudoku.kbl -- 3000000000050090002005040000200007001600000587043106000008901000000670800000054 37 --hizli ``` Kendi bulmacanızı 81 haneli bir dizi olarak verebilirsiniz (`0` = boş hücre). ## KabaLang'ın gösterdikleri | Özellik | Nerede | |---|---| | `sinif` + kurucu `kur` | `Cozucu` ızgarayı **kendi üzerinde** değiştirir (metotlar nesnenin kendisinde çalışır) | | `sayilabilir` | Hücre durumu: `VERILEN · YERLESMIS · DENENIYOR · GERI_ALINDI · KESIN` | | Tipli liste alanı | `izgara: liste = []`, `durum: liste = []` | | `**` üs işleci | Doğrulamada her grubun `2¹ + … + 2⁹ = 1022` toplamı | | f-string genişlik | `{self.deneme:5d}` sabit genişlikli sayaç | ## Doğruluk Program çözümü yazmadan önce `gecerli_mi` ile denetler: her satır, sütun ve 3×3 kutu 1..9'u tam bir kez içermeli. Bu, çözücüden **bağımsız** bir denetimdir — çözücü hatalı olsaydı ekranda `✓` görünmezdi. Ölçülen: varsayılan bulmaca 1.682 deneme / 1.631 geri alma; "dünyanın en zor sudokusu" diye bilinen bulmacalardan biri 243.098 deneme, animasyonsuz ~55 ms.