Page 1 sur 1

Sauvegarde de score.

Publié : ven. 23/janv./2004 8:14
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:

Publié : ven. 23/janv./2004 16:04
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()

Publié : ven. 23/janv./2004 17:29
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

Ca marche presque

Publié : sam. 24/janv./2004 3:09
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

Publié : sam. 24/janv./2004 8:43
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

Publié : sam. 24/janv./2004 9:50
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

Merci

Publié : sam. 24/janv./2004 20:45
par MacRain
Merci beaucoup
:10:
Je vais esaayer avec pluseurs joueurs
:??:

Publié : dim. 01/févr./2004 12:10
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)

Publié : dim. 01/févr./2004 12:16
par Patrick88
avec un silex, peut-être !? :oops:

patrick

Publié : dim. 01/févr./2004 12:22
par comtois
:D :lol:

Publié : jeu. 05/févr./2004 6:19
par MacRain
Je vous trouve dur avec ceux qui debute :cry:

Publié : jeu. 05/févr./2004 9:53
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 .

Publié : jeu. 05/févr./2004 16:59
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:

Publié : jeu. 05/févr./2004 20:24
par Dr. Dri
...

Publié : jeu. 05/févr./2004 20:30
par Oliv
totalement d'accord (on pense tous les 2 à celui d'un autre language ? :wink: )