Hallo Geisterkarle,
Hallo!
egal, wenn du in einer Funktion auf eine globale Variablen
zugreifen willst, dann geht das so:
Hab ich inzwischen auch rausgefunden! Mach es jetzt auch so; auch wenn Kollege Stefan das „unschön“ findet 
leider versteh ich nicht wirklich, was du machen willst, aber
Mir tut grad das Kreuz weh, also hab ich Zeit das zu erklären 
Also hab ja das Spiel Kakuro erwähnt. Bei großen Kakurofeldern, die auch noch entsprechend schwierig gestaltet sind muss man - ich zumindest, sonst komm ich da nicht zum Ergebnis - erstmal in die Felder alle möglichen Zahlenkombinationen eintragen.
Eindeutige Kombinationen, wie „3 Felder und Ergebnis 24 kann nur 789 sein - muss ich nur noch die Reihenfolge finden“ hab ich im Kopf.
Hab ich dagegen 4 Felder mit Ergebnis 24, habe ich ganze 8 Möglichkeiten:
1689
2589
2679
3489
3579
3678
4569
4578
DIE hab ich jetzt nicht auswendig im Kopf! Bisher ergrübele ich mir die „mühsam“ Daher wollt ich jetzt mir in PHP kleines Programm schreiben, die mir die berechnet. Dafür baue ich jetzt ein Array auf, dass so viele Indizes hat wie Felder. Diese Indizes fülle ich jetzt einfach rekursiv 1-9 und prüfe jede Möglichkeit auf Zahleneinzigartigkeit und korrektes Ergebnis und speichere das gefundene Array in einem Ergebnisarray, das ich nochmal vereinzigartige (sonst finde ich 789 und 987 als zwei Ergebnisse, obwohl es gleich ist).
Ich hoffe, dass ich dir helfen konnte.
Bisle zu spät
Aber danke trotzdem!
Hoffe konnte dir erläutern, was ich tue!
Gruß Daniel
Grüße
Geisterkarle
PS:
Falls wen jetzt mein „endgültiger“ Code interessiert:
<?php // Zu suchen:<br />$feldanzahl=4;
$ergebnis=24;
// hilfsarray für suche
$ergebnisarray=array();
// suchergebnisse
$allErg=array();
// hilfsarray mit 1en füllen
for ($i=0; $i \< $feldanzahl; $i++)
{
$ergebnisarray[$i]=1;
}
// eigentliche suchfunktion
function calErg($arrPosi, $eArray)
{
// globale deklarierung
global $allErg, $feldanzahl, $ergebnis;
for ($h=1; $h \<= 9; $h++)
{
// rekursiver aufruf aller feld-positionen
if ($arrPosi \< $feldanzahl-1)
{
calErg($arrPosi+1,$eArray);
}
$eArray[$arrPosi]=$h;
// array auf ergebnis prüfen
if (count($eArray) == count(array\_unique($eArray)) && array\_sum($eArray) == $ergebnis)
{
// sortieren
sort($eArray);
// in Ergebnisarry speichern
$allErg[]=$eArray;
// in dieser FOR-Schleife wird kein weiteres Ergebnis sein
break;
}
}
}
// array\_unique für Mehrdimensionale Arrays
function super\_unique($array)
{
$result = array\_map("unserialize", array\_unique(array\_map("serialize", $array)));
foreach ($result as $key =\> $value)
{
if ( is\_array($value) )
{
$result[$key] = super\_unique($value);
}
}
return $result;
}
// Eigentliche Suche
calErg(0, $ergebnisarray);
// Einzigartig
$allErgU=super\_unique($allErg);
// "Lücken" in Array-Indizes beseitigen
$allErgV=array\_values($allErgU);
echo " ";
// Ausgabe
if (count($allErgV) ";
}
}
?\>