Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

wie funktioniert eigendlich der füllpinselprinzip (z.b. bei malprogrammen),

habe folgendes zweidimensionales arrayfeld:

beispiel: Xangeklickt, alle umliegenden 0en sollen zu 2en werden

also:

1 1 1 0 0 0 0 0 0 0

1 1 1 1 0 X 0 0 0 0

1 1 1 1 0 0 0 1 1 1

1 1 1 1 0 0 1 1 1 1

0 0 0 0 0 0 1 1 1 1

0 0 0 1 1 1 1 1 1 1

0 0 0 1 1 1 1 0 1 1

1 1 1 1 1 0 0 0 1 1

1 1 1 1 0 0 0 0 1 1

1 1 1 1 0 0 1 1 1 1

soll so werden:

1 1 1 2 2 2 2 2 2 2

1 1 1 1 2 X 2 2 2 2

1 1 1 1 2 2 2 1 1 1

1 1 1 1 2 2 1 1 1 1

2 2 2 2 2 2 1 1 1 1

2 2 2 1 1 1 1 1 1 1

2 2 2 1 1 1 1 0 1 1

1 1 1 1 1 0 0 0 1 1

1 1 1 1 0 0 0 0 1 1

1 1 1 1 0 0 1 1 1 1

habe das ganze mit folgender funktion versucht, stürzt aber immer ab..

schauen(5,1); //startwert

function schauen ($x,$y){

if ($feld[$x-1][$y+1]==0){$feld[$x+1][$y+1]=2; schauen($x-1,$y+1);}

if ($feld[$x-1][$y-1]==0){$feld[$x-1][$y-1]=2; schauen($x-1,$y-1);}

if ($feld[$x+1][$y+1]==0){$feld[$x+1][$y+1]=2; schauen($x+1,$y+1);}

if ($feld[$x+1][$y-1]==0){$feld[$x+1][$y-1]=2; schauen($x+1,$y-1);}

if ($feld[$x+1][$y]==0){$feld[$x+1][$y]=2; schauen($x+1,$y);}

if ($feld[$x-1][$y]==0){$feld[$x-1][$y]=2; schauen($x-1,$y);}

if ($feld[$x][$y+1]==0){$feld[$x][$y+1]=2; schauen($x,$y+1);}

if ($feld[$x][$y-1]==0){$feld[$x][$y-1]=2; schauen($x,$y-1);}

}

-habe auch mal die anzahl der functionsaufrufe auf 50 begrenzt, weil sich die schleife ja sonst immer wieder mehrfach + unendlich aufufen würde, hat aber auch nix gebracht.

-verbesserung wäre alle zutreffenden werte in ein array zu speichern & dann vor jeden functionsaufuf zu prüfen, ob die function mit den werten schonmal aufgerufen wurde. wie mache ich das am besten??

:confused:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...