Blackhawk50000 am 13.02.2008 14:50 schrieb:
Wenn du von 0 bis 8 zählst, wird die Schleife dann nicht 9x durchlaufen? Weil bei "0" ja auch schon ein Durchlauf stattfindet.
array und
break
Ich kenn mich zwar - wie gesagt - nicht mit C# aus, denke aber, daß das
array hinter dem
select falsch ist.
Das Array
$ergebnis müßtest du vorher definieren.
okay, soweit ich das richtig verstanden habe, wird die zählscleife für jede einzelne stelle in der zahlenfolge durchlaufen und bricht ab sobald 2 zahlen nicht stimme..... hat die schleife die zahl 8 erreicht sind ziel und resultat richtig
da hier nur ziel und resultat erst mal verglichen werden richig???
Die Schleife, um mehrere Stellen zu überprüfen, steht hier noch nicht.
Das ist nur die Schleife, die
eine Stelle überprüft, und das im Moment nur auf die Ergebnisse 12 und 6.
Zur Veranschaulichung:
Das ist das, was in dem Code Schnispel gerade überprüft wird:
4
2
5
0
5
Es muß übrigens statt
Code:
case ($ergebnis == 12 || $ergebnis == 6
case ($ergebnis == 12 || $ergebnis == 6 || $ergebnis == 0
heißen, da ja auch alle Werte =0 sein können.
Es funktioniert also so, daß die Werte für die entsprechende Stelle zusammengerechnet und in
$ergebnis geschrieben werden.
Dann wird geschaut, ob
$ergebnis =12 ist.
In dem Fall müßte man laut Aufgabenstellung 6 abziehen, also ist das Ergebnis für 12 dasselbe wie das Ergebnis für 6 - und natürlich auch für 0.
Sowohl bei 12, 6 wie auch bei 0 als
$ergebnis muß also 0 in dem Zielwert stehen.
Genau das vergleicht die Zeile
Code:
case ($ergebnis == 12 || $ergebnis == 6 || $ergebnis == 0
{
if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0)
... als Aktion muß jetzt irgendwo gespeichert werden, daß die Kombinatino falsch ist, zB:
Das mußt du natürlich vor dem Schleifendurchlauf auf 0 setzen.
Genauso funktioniert
$zaehler, der quasi bei jeder richtigen Stelle um eins erhöht wird und bei 8stelligen Zahlenkombinationen dann im richtigen Fall den Wert 8 hat.
Du brauchst allerdings nur einen der beiden.