mofle Skrevet 7. april 2007 Skrevet 7. april 2007 Hi alle dere dere fantastiske mennesker Jeg holder på å lage et flash spill med php "highscore". I flash spillet har jeg en "timer" som tar tiden på hvor lang tid spilleren bruker på å fullføre spillet. Denne tiden vil jeg har inne i en "highscore". Problemet er at den php koden jeg har er lagd for å sette opp en "highscore" med høyeste poeng sum øverst. Jeg må gjøre om koden til å vise den laveste tiden øverst. Jeg tror det har noe med rsort() eller noe sånt. Kan noen hjelpe meg med det? Dem som hjelper meg får navnet på "credit"en. http://www.mofle.net/moflegame2/ Start spillet og trykk på Highscore knappen for å komme direkte til highscore. <?php $winscore = (int)$winscore; // Create a Blank File if it doesn't already exist if (!file_exists($filename)) { $file=fopen($filename, "w"); fclose ($file); } // Read the file in $oscores = file ($filename); $numreadin = count($oscores); // Break out the data into a new 2-d array called $tscores for ($i = 0; $i < $numreadin; $i++) { $g = unserialize($oscores[$i]); $tscores[$i][0] = $g[0]; $tscores[$i][1] = $g[1]; } // Fill in any missing data with none/0 for ($i = $numreadin; $i < $scoresize; $i++) { $tscores[$i][0] = 0; $tscores[$i][1] = "none"; } // Process the actions // Insert a score/name if ($action == "INSERT") { // Add name to end of list, and sort $tscores[$scoresize + 1][0] = $winscore; $tscores[$scoresize + 1][1] = $winname; rsort ($tscores); $file=fopen($filename, "w"); // Write them out for ($i = 0; $i < $scoresize; $i++) { $st = serialize($tscores[$i]) . "\n"; fputs($file, $st); } fclose($file); } // Clear the list if ($action == "CLEAR") { $k[0] = 0; $k[1] = "none"; $ser = serialize($k); $file=fopen($filename, "w"); for ($i = 0; $i < $scoresize; $i++) { $st = $ser . "\n"; fputs($file, $st); } fclose($file); } // Process the OUTPUT options if ($viewtype == "HTML") { // HTML PAGE CREATED HERE ?> <table cellpadding=2 cellspacing=2 border=0 width="152"> <tr align=center> <th bgcolor="#000033"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">#</font></th> <th bgcolor="#000033"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">Name</font></th> <th bgcolor="#000033"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">Score</font></th> </tr> <? for ($i = 0; $i < $scoresize; $i++) { echo ("<tr bgcolor='#666666' align='center'><td><font size='2' face='Arial, Helvetica, sans-serif'>"); echo ($i + 1); echo ("</font></td><td><font size='2' face='Arial, Helvetica, sans-serif'>"); echo ($tscores[$i][1]); echo ("</font></td><td><font size='2' face='Arial, Helvetica, sans-serif'>"); echo ($tscores[$i][0]); echo ("</font></td></tr>"); } ?> </table> <? } // FLASH DATA CREATED HERE if ($viewtype == "FLASH") { for ($i = 0; $i < $scoresize; $i++) { echo ("NAME" . $i . "="); echo ($tscores[$i][1]); echo ("&SCORE" . $i . "="); echo ($tscores[$i][0]); echo ("&"); } } ?>
mske Skrevet 8. april 2007 Skrevet 8. april 2007 Hvis du bare bruker MySQL istedenfor flatfiler, er det utrolig enkelt. Da kan jeg hjelpe deg...
magicgunnar Skrevet 8. april 2007 Skrevet 8. april 2007 Jeg tror det har noe med rsort() eller noe sånt. // Add name to end of list, and sort $tscores[$scoresize + 1][0] = $winscore; $tscores[$scoresize + 1][1] = $winname; rsort ($tscores); 8324121[/snapback] Tror det er slik at rsort http://us2.php.net/manual/en/function.rsort.php sorterer fra høyeste til laveste. For å sortere motsatte vei så kan du bruke sort http://us2.php.net/manual/en/function.sort.php den sorterer fra laveste til høyeste. Kanskje dette hjelper? Har ikke sett så nøye på koden din...
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå