## 🚀 Přehled
**CubeEye** je pokročilá aplikace pro Android určená k řešení Rubikových kostek 3x3. Využívá počítačové vidění ke skenování fyzické kostky a poskytuje interaktivního animovaného 3D průvodce k jejímu složení s využitím téměř optimálních pohybů.
## ✨ Klíčové vlastnosti
### 📷 Inteligentní systém skenování
* **Detekce barev v reálném čase:** Automaticky identifikuje barvy stěn kostky pomocí kamery prostřednictvím vlastního `ColorAnalyzer`.
* **Průvodce skenováním:** Intuitivní překryvné rozhraní uživatelského rozhraní provede uživatele procesem správného zachycení všech 6 stěn.
* **Ověřovací logika:** Vestavěný `CubeValidator` zajišťuje, že naskenovaný stav je fyzicky řešitelný před pokračováním.
* **Ruční korekce:** Obsahuje `ColorPickerDialog`, který umožňuje uživatelům ručně upravit barvy, pokud světelné podmínky ovlivňují automatickou detekci.
### 🧩 Inteligentní řešič
* **Kociembův algoritmus:** Integruje slavný dvoufázový algoritmus (prostřednictvím knihovny *min2phase*) pro nalezení téměř optimálních řešení, která často vyžadují méně než 20 tahů.
* **Rychlý lokální výpočet:** Řeší složité problémy během několika sekund přímo na zařízení bez nutnosti připojení k síti.
### 🎥 Interaktivní 3D průvodce
* **3D vizualizace:** Obsahuje plně interaktivní 3D render (`Cube3DView`), který přesně napodobuje stav skutečné krychle.
* **Podrobná animace:** Uživatelé mohou přehrávat, pozastavovat a procházet tahy řešení vlastním tempem.
## 🛠 Technické vlastnosti
* **Moderní Android Stack:** Vytvořeno výhradně pomocí Kotlin a Jetpack Compose (Material 3).
* **Robustní architektura:** Řídí se principy čisté architektury a využívá vzory MVVM, Hilt pro vkládání závislostí a korutiny pro asynchronní operace.
* **CameraX:** Implementuje stabilní a efektivní základ kamery pro živý náhled a analýzu obrazu.
* **SceneView:** Využívá knihovnu SceneView pro vysoce výkonné 3D vykreslování.
## 🐛 Známé problémy / Úkoly
* Optimalizujte prahové hodnoty detekce barev pro lepší zvládání extrémních světelných podmínek.
* Automatizujte integraci knihovny „min2phase“ (aktuálně zahrnuté jako manuální zdrojové soubory).
Datum aktualizace
6. 1. 2026