ZZZ bei Crash: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(klargestellt was weg soll durch auskommentieren) |
Jody (Diskussion | Beiträge) (Jodys Beitrag: richtige Ausgabe) |
||
Zeile 1: | Zeile 1: | ||
− | Da der ( | + | Da der (zugegebenermaßen evtl. etwas kompliziert programmierte) Algorithmus zur Bestimmung der Zurücksetzposition offenbar einen Bug hat, gibt's hier mal meinen "original"-Source code und danach eine korrektur bzw. Anmerkungen von Quabla. |
Ich stell's hier jetzt mal zur Diskussion und möge sich die Community an diesem Stück Code beweisen :-D | Ich stell's hier jetzt mal zur Diskussion und möge sich die Community an diesem Stück Code beweisen :-D | ||
Zeile 70: | Zeile 70: | ||
#$walker++; | #$walker++; | ||
} | } | ||
+ | |||
+ | |||
+ | Jody fügt hinzu:<br> | ||
+ | Damit die richtige Anzahl an Zügen ausgegeben wird, müsste man quabla's Vorschlag noch wie folgt ändern: | ||
+ | # ... | ||
+ | if ($row[crash]==1) | ||
+ | { | ||
+ | $aussetzen -= $i; | ||
+ | $i = 0; | ||
+ | } | ||
+ | # ... | ||
+ | |||
[[Category:Bisschen OpenSource]] | [[Category:Bisschen OpenSource]] |
Version vom 22. April 2008, 23:06 Uhr
Da der (zugegebenermaßen evtl. etwas kompliziert programmierte) Algorithmus zur Bestimmung der Zurücksetzposition offenbar einen Bug hat, gibt's hier mal meinen "original"-Source code und danach eine korrektur bzw. Anmerkungen von Quabla.
Ich stell's hier jetzt mal zur Diskussion und möge sich die Community an diesem Stück Code beweisen :-D
if ($possibles==0) { $query="select M_ID,x_pos,y_pos,crash from $movestable [..]"; $res=do_query($query); $maxmoves=mysql_num_rows($res); if ($aussetzen>=$maxmoves) { $aussetzen=$maxmoves-1; } $walker=0; $i=$aussetzen; while ($i>=0) { $row=mysql_fetch_array($res); if ($row[crash]==1) { $sum=$aussetzen+$walker+$i; if (($sum)>=$maxmoves) $i=$maxmoves-$walker-1; else $i=$i+$aussetzen; } $i--; $walker++; } $sysmsg="-:KIch werde $aussetzen Züge zurückgesetztK:-"; echo "AUAAAA! Es quietscht und du knatterst ins Gras... Dafür wirst Du um $aussetzen Züge zurückgesetzt und startest wieder von 0."; }
Hier die Kommentierung und Vorschläge von Quabla
if ($possibles==0) { $query="select M_ID,x_pos,y_pos,crash from $movestable WHERE [..]"; $res=do_query($query); $maxmoves=mysql_num_rows($res); if ($aussetzen>=$maxmoves) { $aussetzen=$maxmoves-1; }
$walker kann wech
#$walker=0; $i=$aussetzen; while ($i>=0) { $row=mysql_fetch_array($res); if ($row[crash]==1) {
und den ganzen Kladderadatsch in diesem if-Zweig kann man dann ersetzen durch
$i = 0; # $sum=$aussetzen+$walker+$i; # if (($sum)>=$maxmoves) # $i=$maxmoves-$walker-1; # else # $i=$i+$aussetzen; } $i--; #$walker++; }
Jody fügt hinzu:
Damit die richtige Anzahl an Zügen ausgegeben wird, müsste man quabla's Vorschlag noch wie folgt ändern:
# ... if ($row[crash]==1) { $aussetzen -= $i; $i = 0; } # ...