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:
@@ -0,0 +1,39 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user