Sauvegarde de score.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
MacRain
Messages : 9
Inscription : jeu. 22/janv./2004 6:48

Sauvegarde de score.

Message par MacRain »

Comment faire une sauvegarde de score dans un fichier, mais pas dans un fichier ini.
J'avoue que je n'ai pas tres bien compris l'acces aux fichiers avec les explication de l'aide en ligne .
Merci d'avance. :wink:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Voila un exemple tout simple , tu pourras t'amuser à l'améliorer .
regarde aussi les possibilités avec
NomFichier$ = SaveFileRequester(Titre$, FichierParDefaut$, Filtre$, FiltrePosition)

C'est peut-être de ça que tu voulais parler d'ailleurs ?

Code : Tout sélectionner

Procedure SaveScore(Score.l)
  If CreateFile(0,"SauveScore.dat")
    WriteLong(Score)
    CloseFile(0)
  EndIf
EndProcedure  

Procedure.l LoadScore()
  ValeurLue.l = -1 ; initialise le score
  If ReadFile(0,"SauveScore.dat")
    ValeurLue = ReadLong()
    CloseFile(0)
  EndIf
  ProcedureReturn ValeurLue ; Retourne la valeur lue , -1 si défaut de lecture !
EndProcedure  

Score.l = 345

SaveScore(Score)
Debug LoadScore()
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

variante lecture:

Code : Tout sélectionner

if openfile(0,"SauveScore.dat") =0
 ;le fichier existe pas - init avec valeur par défaut
 ValeurLue.l = -1 ; initialise le score 
 writelong(ValeurLue)
else
    ValeurLue = ReadLong() 
EndIf 
CloseFile(0) 
patrick
MacRain
Messages : 9
Inscription : jeu. 22/janv./2004 6:48

Ca marche presque

Message par MacRain »

Salut ,
Merci pour ce bout de code il marche bien , mais comment faire pour sauvegarder egalement le nom du joueur.
C'est que pour moi ce situe le probleme , suavegarder les nom ( string) et le score (long) et pouvoir les recuperer .
Merci encore
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Code : Tout sélectionner

Global NomJoueur.s,ScoreJoueur.l

Procedure SaveScore(Score.l,Nom.s) 
  If CreateFile(0,"SauveScore.dat") 
    WriteStringN(Nom) 
    WriteLong(Score) 
    CloseFile(0) 
  EndIf 
EndProcedure  

Procedure.l LoadScore() 
   If ReadFile(0,"SauveScore.dat") 
    NomJoueur = ReadString() 
    ScoreJoueur = ReadLong() 
    CloseFile(0) 
  EndIf 
EndProcedure  

;Initialise le nom et le score du joueur 
NomJoueur = "Toto"
ScoreJoueur = 345 

;Affiche le résultat
Debug "Résultat après initialisation par programme"
Debug NomJoueur
Debug ScoreJoueur

;Sauvegarde le nom et le score du joueur
SaveScore(ScoreJoueur,NomJoueur) 

;Efface le nom et le score 
NomJoueur="****"
ScoreJoueur=0

;Affiche le résultat
Debug "Résultat après effacement"
Debug NomJoueur
Debug ScoreJoueur

;Récupère le nom et le score enregistrés
LoadScore()

;Affiche le résultat
Debug "Résultat après lecture du fichier"
Debug NomJoueur
Debug ScoreJoueur
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Variante, sans passer par des variables globales .

Code : Tout sélectionner

Procedure SaveScore(Nom.s,Score.l) 
  If CreateFile(0,"SauveScore.dat") 
    WriteStringN(Nom) 
    WriteLong(Score) 
    CloseFile(0) 
  EndIf 
EndProcedure  

Procedure.l LoadScore(*Nom,*Score) 
  If ReadFile(0,"SauveScore.dat") 
    PokeS(*Nom,ReadString())
    PokeL(*Score,ReadLong())
    CloseFile(0) 
  EndIf 
EndProcedure  

;/Initialise le nom et le score du joueur 
NomJoueur.s = "Toto" 
ScoreJoueur.l = 345 

;/Affiche le résultat 
Debug "Résultat après initialisation par programme" 
Debug NomJoueur 
Debug ScoreJoueur 

;/Sauvegarde le nom et le score du joueur 
SaveScore(NomJoueur,ScoreJoueur) 

;/Efface le nom et le score 
NomJoueur="****" 
ScoreJoueur=0 

;/Affiche le résultat 
Debug "Résultat après effacement" 
Debug NomJoueur 
Debug ScoreJoueur 

;/Récupère le nom et le score enregistrés 
LoadScore(@NomJoueur,@ScoreJoueur) 

;/Affiche le résultat 
Debug "Résultat après lecture du fichier" 
Debug NomJoueur 
Debug ScoreJoueur
MacRain
Messages : 9
Inscription : jeu. 22/janv./2004 6:48

Merci

Message par MacRain »

Merci beaucoup
:10:
Je vais esaayer avec pluseurs joueurs
:??:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Patrick88 a écrit :variante lecture:

Code : Tout sélectionner

if openfile(0,"SauveScore.dat") =0
 ;le fichier existe pas - init avec valeur par défaut
 ValeurLue.l = -1 ; initialise le score 
 writelong(ValeurLue)
else
    ValeurLue = ReadLong() 
EndIf 
CloseFile(0) 
patrick
Salut patrick

dis moi , comment tu fais pour écrire un long dans un fichier que tu n'as pas pu ouvrir :?:
if openfile(0,"SauveScore.dat") =0
;le fichier existe pas - init avec valeur par défaut
writelong(ValeurLue)
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

avec un silex, peut-être !? :oops:

patrick
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

:D :lol:
MacRain
Messages : 9
Inscription : jeu. 22/janv./2004 6:48

Message par MacRain »

Je vous trouve dur avec ceux qui debute :cry:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Salut MacRain

Euh , à quel sujet ?

Patrick88 ne débute pas ,et puis je le taquinais , il a très bien compris ( enfin j'espère , et puis il est assez taquin lui même :) , loin de moi l'idée d'être dur avec qui que ce soit .

Désolé si tu l'as pris pour toi , il n'y avait rien de mal dans mes propos .

Alors surtout n'hésite pas à poser tes questions , elles seront les bienvenues .
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Faut SURTOUT pas faire ttention aux remarques faites aux utilisateurs sur se forum, sinon tu te dis que tout le monde se gueule dessus :wink:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 8:25, modifié 1 fois.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

totalement d'accord (on pense tous les 2 à celui d'un autre language ? :wink: )
Répondre