php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.06.2005, 22:57  
Benutzer
 
Registriert seit: 26.02.2005
Beiträge: 58
Madden
Standard snake highscore script ... von jedem user nur beste score

Hiho
ich hätte dann ma wieder ne Frage. Ich hab n flashgame auf meine seite gebracht und nu hab ich ein problem mit der highscore. und zwar wird jede score eingetragen, ganz egal ob der name schon ein besserere score hat. es kann also möglich sein, dass plätze 1-5 von ein und demselben spieler belegt sind.

(wer jetzt denkt ich bin zu faul zum selbermachen hat nich recht. wolltes ja machen, aber blick den teil den ich brauch nicht, sry)

also hier der code für die eintragung in highscore (wird in 3 textdateien gespeichert. es gibt 3 modi, für jeden modus 1 highscore datei)


Code:
<?php

$name_max = 16; # Maximum player name length allowed
$display_max = 100; # Maximum number of scores to display (multiple of 10)


# Error handler
function error_msg($msg) {
	exit("success=0&errorMsg=$msg");
}

# Store POSTed info
@$player_name = $_POST['name'];
@$player_score = $_POST['score'];
@$game_name = $_POST['game'];

# Need game name
if (!isset($game_name)) error_msg('Could not access scores.');

# Filename of text file to hold the scores given by game name - e.g. Pac-Man becomes pacman_scores.txt
$filename = $game_name . '_scores.txt';

# Saving new score?
if (isset($player_score) && is_numeric($player_score) && isset($player_name) && strlen($player_name) > 0 && strlen($player_name) <= $name_max) {

	# Open the text file for writing
	$file = fopen($filename, 'r+') or error_msg('Could not load scores.');

	# Lock file
	if (flock($file, LOCK_EX | LOCK_NB)) {
		$content = fread($file, filesize($filename));

		$newline = '';
		$ranked = false;
		$i = 1;

		# Store pairs of values into pairs array
		$pairs = explode('&', $content);
		foreach ($pairs as $pair) {
			# Store name or score pair
			@list($nm, $val) = explode('=', $pair);
			if ($i <= $display_max && strlen($val) > 0) {
				# Insert name
				if (substr($nm, 0, 4) == 'name') $this_name = $val;
				else {
					# Insert score or player's score
					$this_score = $val;
					if (!$ranked && ((int)$player_score) > ((int)$this_score)) {
						$newline .= "&name$i=$player_name&score$i=$player_score";
						$ranked = true;
						$i++;
					}

					$newline .= "&name$i=$this_name&score$i=$this_score";
					$i++;
				}
			}
		}

		# Write new scores
		if (strlen($newline) > 0) {
			ftruncate($file, 0);
			rewind($file);
			fwrite($file, $newline) or error_msg('Could not save score.');
		}

		echo 'success=1&errorMsg=OK&maxScore=' . $display_max . $newline;
	}
	else error_msg('Could not save score.');

	fclose($file);
}
else {
	# Return new scores
	@$file = fopen($filename, 'r') or error_msg('Could not load scores.');
	$content = fread($file, filesize($filename));
	echo 'success=1&errorMsg=OK&maxScore=' . $display_max . $content;
	fclose($file);
}

?>

wisst ihr wie man das script umschreiben muss, damit pro name nur eine score in der liste steht?
Madden ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.06.2005, 23:05  
Gast
 
Beiträge: n/a
Standard Re: snake highscore script ... von jedem user nur beste scor

Zitat:
Zitat von Madden
ich hätte dann ma wieder ne Frage.
Lieferst Du die incl. Deiner Systembeschreibung noch nach?
Zitat:
wär cool wenn jemand helfen könnte
Forenregeln: zwischen Anfänger und Profi - Fortgeschrittene

Wie frage ich richtig?
 
Alt 10.06.2005, 23:05  
Erfahrener Benutzer
 
Registriert seit: 14.04.2005
Beiträge: 1.004
search
Standard

Ich kapier den sinn dahinter nicht, denn wenn ein user auch 10 mal hintereinander drin steht gehts ja hauptsächlich darum dass dieser user die punkte sich erspielt hat um 10 mal hintereinander in der hs liste zu stehen.
So eine hs liste geht halt nach punkten und nicht nach usernamen :wink:

greez search
__________________
schlimmer gehts nimmer.... dümmer immer!
search ist offline  
Alt 10.06.2005, 23:16  
Benutzer
 
Registriert seit: 26.02.2005
Beiträge: 58
Madden
Standard

@meikel: meint gott es ist halt spät + ich bin n bissl müde, will das aber heute noch schaffen

ansonsten nervt das aber wenn ein user die ersten 20 plätze hat...man will bei einer highscore list ja auch wissen wie die anderen spieler im vergleich zum besten sind und wenn man da ersteinmal 1000 seiten scrollen muss.....
__________________
freesms, free hosting uvm. 4 free:

>> www.msxstudios.de
Madden ist offline  
Alt 10.06.2005, 23:18  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der Beitrag wurde verschoben, wegen...
... unzureichender Fragestellung.
... unzureichender Hintergrund-Informationen.
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger
imported_Ben ist offline  
Alt 10.06.2005, 23:20  
Erfahrener Benutzer
 
Registriert seit: 14.04.2005
Beiträge: 1.004
search
Standard

dann sollen sich die anderen eben mehr ansträngen

wie erstellst du den ausgabe bzw. wo und wie stehen die hs infos drin oder wird das ganze direkt ausgeben?
__________________
schlimmer gehts nimmer.... dümmer immer!
search ist offline  
Alt 10.06.2005, 23:21  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Madden
... will das aber heute noch schaffen
Nimm eine DB und laß die Fummelei mit dem Textfile.
 
Alt 11.06.2005, 00:14  
Benutzer
 
Registriert seit: 26.02.2005
Beiträge: 58
Madden
Standard

jo, mach ich auch... glaube kann das nich so erklären dass es jmd versteht. vorallem zu der zeit.

trotzdem denk ich n anfänger versteht den code auf keinen fall. ich selbst bin kein anfänger, trotzdem blick ich nur sehr schwer durch
__________________
freesms, free hosting uvm. 4 free:

>> www.msxstudios.de
Madden ist offline  
Alt 11.06.2005, 01:15  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Madden
glaube kann das nich so erklären dass es jmd versteht.
Du wirst doch wohl noch Dein Projekt beschreiben können.

Zitat:
trotzdem denk ich n anfänger versteht den code auf keinen fall.
Was sollen diese Eitelkeiten? Da Du den Link nicht gefolgt bist:
die Einteilung betrifft die Fragesteller und nicht die Antwortenden.
- Du stellst keine Frage
- Du postest das Script in CODE und nicht in PHP Tags
- das Script ist dürftig kommentiert
- keinerlei Systembeschreibung
- kein Link auf Dein phpinfo

Zitat:
ich selbst bin kein anfänger, trotzdem blick ich nur sehr schwer durch
Dann taugt das Projekt nix.

Spielstände für highscores uä. speichert man in einer DB. Das erleichert das Speichern und die Abfrage ungemein. Außerdem ersparst Du Dir dann die Fummelei mit flock, weil das dann der MySQL Server regelt.

Zusatztip:
17.10. Ich habe eine Tabelle mit n Einträgen und möchte auf jeder Seite m davon anzeigen
http://www.php-faq.de/q/q-mysql-seitenweise.html
 
Alt 11.06.2005, 04:01  
Gast
 
Beiträge: n/a
Standard Re: snake highscore script ... von jedem user nur beste scor

meikel hat ges hrieben:
"Lieferst Du die incl. Deiner Systembeschreibung noch nach?"

warum schreibt alles in der welt 'inkl' mit 'c'
pisa lässt grüßen, meikel.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
User wird immer gleich Script angezeigt Potterfans PHP Tipps 2008 1 26.04.2008 20:42
welches ist das beste Script.... dh1sbg Off-Topic Diskussionen 5 06.04.2008 21:56
php4 Script User Einloggen Fehler Asiafighter PHP Tipps 2006 4 30.04.2006 17:33
PHP4 Script sendet keine emails an User Asiafighter PHP Tipps 2006 20 30.04.2006 11:30
Member Script gibt zu wenig User aus PHP Tipps 2005-2 6 29.10.2005 19:30
Session: Untersch. Seiten f. eingeloggte User und norm. User PHP Tipps 2005-2 2 20.07.2005 12:46
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] MySQL user rausfinden Datenbanken 4 26.05.2005 12:15
User Online Script Mano PHP Tipps 2005 3 21.03.2005 03:22
Prüfen Ob Script Von User Beendet Wurde PHP Tipps 2007 33 04.01.2005 11:48
[Erledigt] PHP linux user wechseln PHP-Fortgeschrittene 12 05.12.2004 16:11
Teamspeak user ADD im Login script von Home page PHP Tipps 2004 1 13.10.2004 19:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php highscore script, highscorescript 4.0 version 2, highscore script, php script highscore, highscore script php, php highscore textdatei, highscore php scripts, highscore php script, highscorescript 4.0 version, snake php script, php script snake, snake php code, php highscore free, snake highscore tipps, highscore speicher php txt datei, snake 1 highscore, beste usernamen, hiscore script php, highscore multianzeige, highscore multianzeiger

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.