KabaLang örnekleri: konsol, masaüstü ve web için dokuz proje

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]>
This commit is contained in:
2026-10-02 22:31:40 +03:00
co-authored by Claude Opus 5.5
commit ed201188fb
39 changed files with 2650 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
# 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<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.