Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
discount week 30 halloween
Avatar
awertol
Člen
Avatar
awertol:9.3.2019 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.3.2019 13:10
Avatar
HONZ4
Člen
Avatar
Odpovídá na awertol
HONZ4:10.3.2019 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
10.3.2019 10:55
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
David Vlček
Člen
Avatar
David Vlček:12.3.2019 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
12.3.2019 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.3.2019 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
12.3.2019 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.