Letní akce PHP týden
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!
Avatar
awertol
Člen
Avatar
awertol:9. března 13:10

Vytvářím jednoduchý vlnový algoritmus, který najde cestu v bludišti.
Momentálně mám vytvořené bludiště 4x4, složené z Panelů, ve kterých jsou Labely.
Nevím jak ale udělat to, abych mohl zvýšit číslo Panelu, uložené v proměnné, na který se chci přepnout a mohl mu změnit barvu, viz:

SoucasnaPozice = "panel{0}"; Convert.ToString(čísloPanelu);
čísloPanelu++;
SoucasnaPozice.BackColor = *název barvy*;   <------- Nevím jak udělat

Chci docílit: Toho, aby se při kliknutí na tlačítko "další krok" zbarvil sousedící Panel do stejné barvy.
Dále nevím jak zjistit, jaké Panely sousedí s tím "současně zvoleným"...

 
Odpovědět 9. března 13:10
Avatar
HONZ4
Člen
Avatar
Odpovídá na awertol
HONZ4:10. března 10:55

Řešit to tímto způsobem je nesmysl.
Udělej si pole, ve kterém budou uloženy informace o stavu "čtverečků". Testuj stav v tomto poli a následně vykresluj stav na plátno (picturebox v případě winforms, v tomto případě pomocí FillRect).
Podívej se taky na: hledání cesty

 
Nahoru Odpovědět  +1 10. března 10:55
Avatar
David Vlček
Člen
Avatar
David Vlček:12. března 15:47

Napadá mě udělat seznam objektů který maji reference na svoje sousedy. potom když budu hledat, tak vím, že stojím na čtverečku s nějakým indexem, tak se kouknu na jeho reference a zjistím, jestli se na ně dá jít. Potom si do sebe uložím jejich index jako moji pozici a hledám znovu... :)

Nahoru Odpovědět  +1 12. března 15:47
Nevěřím, že každý dokáže všechno co chce. Věřím ale, že by to měl zkusit.
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:12. března 16:10

U ctvercove site staci vedet x, y. x+-1, y+-1 jsou sousedi.
Pokud mas 0 az n, pak y = floor(n/width); x = n - y * width; a sousedy vypocitas podobne.
V obou pripadech je dobre testovat existenci policka.

V systemu se slozitejsimi zakonitostmi mezi sousedy, treba setiuhelnikova sit, je mozna lepsi si vytvorit seznam sousedu pro rychlejsi prohledavani, viz David Vlček.
Treba viz tady
https://mlich.zam.slu.cz/js-ff/ff4b.htm

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 12. března 16:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.