Konsol: fraktal (paralel şeritli 24-bit Mandelbrot/Julia + yakınlaşma), sudoku (geri izlemeli, canlı animasyon), fatura (JSON → terminal tablosu, PDF ve Excel). Masaüstü: hesap makinesi (işlem önceliği, canlı bağlama), odak (Pomodoro), parola atölyesi (entropi ölçer, SHA-256). Web: pano (Kanban REST API + SQLite), kisalt (302 yönlendirme, SVG istatistik), anket (adres başına tek oy, sunucuda çizilen grafik). Hepsi `kabalang calistir` ile derlenip çalışır; web uygulamaları yalnız 127.0.0.1'i dinler, SQL parametre bağlamalı, HTML çıktısı kaçırılır. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
40 lines
1.8 KiB
Markdown
40 lines
1.8 KiB
Markdown
# Sudoku — geri izlemeli çözücü, canlı animasyonla
|
|
|
|

|
|
|
|
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<sayi> = []`, `durum: liste<Hucre> = []` |
|
|
| `**` ü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.
|