Kettenreaktion
Übersicht

![]() |
WEBLinkBetreff: Kettenreaktion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
langsam erläre ich mich selbst für zu blöd. Versuche schon seit Stunden ein art Kettenreaktion hinzubekommen. Und zwar hat man ein Feld in dem viele verschiedenfarbige Juwelen sind. klickt man auf eine Farbe so werden alle angrenzenden mit der gleichen Farbe gelöscht, natürlich sollen die angenzenden die an den anderen gleichfarbigen angrenzen auch gelöscht werden. entweder denke ich zu komplex oder der schlüssel ist einfach noch net gefallen. deswegen bitte ich euch jetzt um hilfe. Was ist die einfachste Möglichkeit diese "Kettenreaktion" hin zu bekommen. Es soll auch über Rekursion gehen. Davon wurde mir aber abgeraten |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum keine Rekursion? Das wäre das Mittel der Wahl... | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder mach es nach dem FloodFill-Prinzip. Such mal hier im Forum danach, da findet sich bestimmt was. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Functio DeleteAllNachbern()
For alle_nachbern if gleichefarbe then delete(this_nachber) : DeleteAllNachbern() next End Functoin Pseudocode: mit einer Rekrusiven Funktion gelöst. |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Xeres
Frag mich nicht, hab den Kommentar angebracht ob ma es über eine Rekursiv Funktion lösen sollen. Man meinte das es einfacher geht. @ Der Eisvogel schau ich mit mal an @ TimBo - kein KOmmentar ... |
||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
einfacher als rekursion geht es nicht, die tiefensuche ist in 10 zeilen gemacht.
du kannst es auch mit ner breitensuche machen, das ist aber aufwendiger und braucht dynamische speicherstrukturen |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
MeikBetreff: Re: Kettenreaktion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey ![]() Ich hatte mal ein ähnliches Problem, wenn ich dein Problem richtig verstanden habe. Vielleicht hilft dir das weiter https://www.blitzforum.de/foru...hp?t=32330 MFG Meik |
||
![]() |
kriD |
![]() Antworten mit Zitat ![]() |
---|---|---|
WEBLink hat Folgendes geschrieben: @ TimBo
- kein KOmmentar ... was is an TimBos Code bis auf das Nachbern so verkehrt? lg kriD |
||
Wenn ich du wäre, wäre ich lieber ich! |
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi,
- du löschst das element bei dem du anfangen möchtest - du rufst rekursiv die funktion auf alle 4 nachbarn auf, falls die farbe übereinstimmt und das element noch nicht gelöscht wurde (entweder ist der code so geschrieben dass das diese abfrage kein problem darstellt - ansonsten löst dus über ein temporäres array mit 1en und 0en für gelöscht/nicht gelöscht) - fertig die reihenfolge ist wichtig, sonst haste ne endlosschleife hoffe ich konnte helfen grüßte BBPro |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group