Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
BF extended 2022
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
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í
+2,50 Kč
Ř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.