1

voila je ne demande pas du tout a ce que l'on me code un algo
mais juste me dire ce ki va pas paske ca marche pas du tout..
merci bien
voila le code:

en fin de partie le score est dans la variable "score"
HSC_ptr c le pointeur pour mon fichier de hsc
sachant ke les socres vont de 0 a 9999
kil y a 4 hscores !=
for(i=0;i<4;i++){
 sprintf (buffer_text, "%d",HSC_ptr+i*5);
 for(j=4;j>0;j--){score_cmp=buffer_text[j]*(pow(10,(4-j)))+score_cmp;}// c pour transformer en base 10
	if(score>=score_cmp){sprintf (buffer_hsc, "%d",score);
	ftell (fichier2);
	fseek (fichier2,i*5,SEEK_CUR);
	fputs(buffer_hsc,fichier2);
	XDestrFont();
XIniDrawStr(F_6x8,GLOW);
XDrawDGlowStr(40,65,"HighScore",7);XCpyGPlanToLCD();	
}



merci d'avance
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

2

j'ai pas regarder si ton code était juste, mais tu te prend un peu la tet pour rien. tes 4 scores tiennent sur 4 int, donc autant stocker tes 4 int directement dans ton fichier hsc:
int hightscore[4];
file=fopen("fichier","wb")
for(j=0;j<4;j++)
  fwrite(&hightscore[j],sizeof(int),1,file);

3

Ou carrément fwrite(highscore,sizeof(int),4,file)...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

4

Pour la gestion des hight-scores, pourquoi ne pas simplement enregistrer les records dans un tableau d'entier static ?

static int record[4] = {0};

/* Fin de partie */

for(i=0 ; i<4 ; i++)
{
if(record [i] < score)
record [i] = score;
}
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

5

il manque à record le entre crochet ["i"], car ça les a supprimé...
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

6

Parce que si le prog est archivé, les High Scores ne seront pas updatés...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

7

ah ok mci
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

8

je suis po sur ke vous avez compris ce ke je vous demandais

donc j'ai deja mes 4 highscores dans le fichier

a la fin de la partie, je veux voir si le score fait est superieru a l'un des 4 deja present
et si c le cas, "updater" le fichier....
la ce ke vous m'avez mis,c juste pour creer ce fichier nan?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

9

Ben, pour lire tu utilises fread et tu fais ton tri et tu récrit tout dans le fichier happy
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

10

C'est en effet le mode le plus simple...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

11

ok et fread ca renvoi koi? une chaine de caracteres ou un nombre??
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

12

c'est écrit dans la doc => faq

13

Oué, c'est clair ... quand on te file un proto dans la doc ... c quand mm pas dur a déchiffer !!!!

Mais où est passée l'époque des vrai nioobs qui se démerdaient pas mal par eux même what

14

ok.Dsldsl
couic
en plus c mon premier faq kon me met
j'en suis tou emu
jm bien...je crois ke jve faire mon nioob feignant plus souvent
en tout ca merci!!
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

15

fread returns the number of items (not bytes) actually read. If the operation was sucessful, the returned result should be equal to n. In a case of error, returned result will be smaller (possibly zero).


ca me sert a koi??
sinon ya FRead
mais y a pas la doc gni

ptdrrotfl
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

16

faut t'acheter des lunettes c'est juste la ligne au dessus ! roll
Reads data from a stream.

fread reads n items of data, each of length size bytes, from the input stream associated with the structure pointed to by stream into a block pointed to by ptr. The total number of bytes read is n x size. fread fread returns the number of items (not bytes) actually read. If the operation was sucessful, the returned result should be equal to n. In a case of error, returned result will be smaller (possibly zero).

Note: fread is proposed to be used in "binary" mode (see fopen). Although this is not strictly necessary, it is is highly recommended opening stream in "binary" mode if you want to use this function. Anyway, there will not be any character translations during reading, even if the file is opened in "text" mode. This function was buggy in releases of TIGCCLIB prior to 2.2; this is now fixed.

n'oublie pas non, plus de lire la petite note....

sinon, pour FRead, non, y'a pas de doc car personne n'a encore pu prendre le temps de chercher. Ce n'est pas la doc de Ti, mais une doc rédigée par l'équipe bénévole qui maintient tigcc...

17

y a ecrit ke ca retourne le nombre ditem lu....
moi je veux ke ca me retourne mes putaind e scores...
putain vous allez me dire ke c pareil
mais je comprend ke dalle a l'anglais
chui une sous emrde de bikette hemiplegike
de nioob de merde
mourn
perosnne veut me coder mon jeu a ma palce?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

18

Et si t'essayais de parler français d'abord? roll

Sinon :
fread reads n items of data, each of length size bytes, from the input stream associated with the structure pointed to by stream into a block pointed to by ptr.

Donc voilà, ça te met tes scores dans le tableau 'ptr' embarrassed

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

19

KWT-ArpiK :
y a ecrit ke ca retourne le nombre ditem lu.... moi je veux ke ca me retourne mes putaind e scores...
reste cool ok! personne n'a été agressif jusque la !
ben la fonction n'exite pas : il faut que tu la programmme avec fread :
fread reads n items of data
, each of length size bytes, from the input stream associated with the structure pointed to by stream into a block pointed to by ptr. The total number of bytes read is n x size
fread meme tes hight score dans ptr.
si t'es un nioub et que tu n'arrive pas a comprendre comment ca marche faudra p-e que tu essaye de faire marcher ton prog sans sauvegarde des high scores, tu verra apres, qd t'auras plus d'expérience.
mais je comprend ke dalle a l'anglais
va falloir que tu t'y fasse, parce que l'on peux pas te traduire toute la doc...

20

chui desole de m'etre ennerve..mais cpas contre vous c contre moi parce ke je c ke c super simple et ke j'y arrive pas....
hibou> tu me dit ke si chui un nioob(c le cas) je devrai fair le jeu san highscore
je ne suis pas d'accor....parce kil fo bien commencer un jour nan???

enfin...

jve essayer d'y arriver..donc je vous demande un peu d'aide poliment ok
on reprend a zero..


voile comment g defini mon fichier high score...
FILE *fichier2 = fopen ("HSCR", "wb"); 

fputs ("0200",fichier2);
fputc (0, fichier2);
fputs ("0100",fichier2);
fputc (0, fichier2);
fputs ("0050",fichier2);
fputc (0, fichier2);
fputs ("0000",fichier2);
fputc (0, fichier2); 

fputs ("Robert  ",fichier2);
fputc (0, fichier2);
fputs ("marcel  ",fichier2);
fputc (0, fichier2);
fputs ("Ginette ",fichier2);
fputc (0, fichier2);
fputs ("Skunky  ",fichier2);
fputc (0, fichier2); 


fputs ("HSC", fichier2); 
fputc (0, fichier2); 
fputc (OTH_TAG, fichier2); 
fclose (fichier2);
 
SYM_ENTRY *entry2;
 void *HSC_ptr;
 entry2=SymFindPtr(SYMSTR("HSCR"),0);
 HeapLock (entry2->handle);
 HSC_ptr=HeapDeref(entry2->handle)+2;




donc fo ke je fasse fread(*HSC_ptr,4*1,4,fichier2)
et ca me retourne koi??
dsl
dsl
dsl
pardon
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

21

KWT-ArpiK :
hibou> tu me dit ke si chui un nioob(c le cas) je devrai fair le jeu san highscore je ne suis pas d'accor....parce kil fo bien commencer un jour nan???
mais pas forcement pas le plus dur. Mon premier jeux était un démineur sans rien. Apres j'ai ajouter les high score (en local puis en var externe), j'ai ajouter la detection automatique de zero, unn compteur de temps, un curseur etc....
J'aurais essayer de tout faire d'un coup j'y serais jamais arriver

voile comment g defini mon fichier high score...
FILE *fichier2 = fopen ("HSCR", "wb"); 

fputs ("0200",fichier2);
fputc (0, fichier2);
fputs ("0100",fichier2);
fputc (0, fichier2);
fputs ("0050",fichier2);
fputc (0, fichier2);
fputs ("0000",fichier2);
fputc (0, fichier2); 

fputs ("Robert  ",fichier2);
fputc (0, fichier2);
fputs ("marcel  ",fichier2);
fputc (0, fichier2);
fputs ("Ginette ",fichier2);
fputc (0, fichier2);
fputs ("Skunky  ",fichier2);
fputc (0, fichier2); 


fputs ("HSC", fichier2); 
fputc (0, fichier2); 
fputc (OTH_TAG, fichier2); 
fclose (fichier2);
 
SYM_ENTRY *entry2;
 void *HSC_ptr;
 entry2=SymFindPtr(SYMSTR("HSCR"),0);
 HeapLock (entry2->handle);
 HSC_ptr=HeapDeref(entry2->handle)+2;




donc fo ke je fasse fread(*HSC_ptr,4*1,4,fichier2) et ca me retourne koi??
tu vois, tu tombe deja sur des pb assez hardus pour un débutant : il faut d'abord créer le fichier correctement, suivant un structure bien définie par Ti : { .w taille-2, ...datas... , 0,H,S,C,0,OTH_TAG }
ensuite, tu stocke tes nombres sous forme de texte, ce qui est absurde : socke les directement dans ton fichier
pour ta lecture de tes hight score, tu semble vouloir les lire de deux maniere différentes : directement avec HSC_ptr et de l'autre avec fread
et fread remplit le buffer que tu lui donne en parametre : ptr
y'a bcp d'incohérence, ce qui me fait penser que tu t'es p-e attaquer a trop gros pour toi, (au moins pour l'instant)
dsl
dsl
dsl pardon
pas la peine non plus de tomber dans l'exces inverse

22

dsl
dsl
dsl pardon

rotfl
.w taille-2

Non, c'est fopen/fclose qui s'en occupe (sauf si tu ne les utilises pas et que tu passes par SymAdd).
Sinon je te recommende d'écrire l'entier directement avec :
int score[4] = {200,100,50,0};
fwrite(score, sizeof(int), 4, fichier2);

(plutôt que de le convertir en chaîne, parce que tu vas avoir la conversion en sens inverse à ajouter, alors qu'en stockant l'entier, tu vas simplement avoir la conversion entier->chaîne)

Et dernier petit conseil : si tu déclares tes variables au milieu d'un fichier, alors va jusqu'au bout et déclare-les seulement au dernier moment :
 SYM_ENTRY *entry2=SymFindPtr(SYMSTR("HSCR"),0);
 HeapLock (entry2->handle);
 void *HSC_ptr=HeapDeref(entry2->handle)+2;

L'intérêt est que tu es sûr de ne pas utiliser de variables avant leur initialisation. En plus ton programme est plus court, dans le cas que j'ai mentionné top

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

23

SI tu veux enregistrer le nom à coté du score, fais une structure:
struct hsc
{
int score;
char nom[20];
};


et pour lecture et ecriture:
struct hsc scores[4];
...
fread(scores,sizeof(struct hsc),4,fichier);
...
fwrite(scores,sizeof(struct hsc),4,fichier);


PS: je n'ai pas vérifié l'ordre des params dans les fonctions, j'ai pris ceux de Pollux. Mais ça devrait marcher à peu près...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

24

Je ne crois pas m'être planté, mais c'est à vérifier. C'est vrai que le fait de prendre une structure facilitera ton tri (un seul memmove, un seul pointeur).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

25

ok merci pour toutes vas reponse c vraiment sympa..j'essaye ca des ke g fe un petite sieste....


c vrai ke j'ai ete tres con de declarer mes scores en chaine de caractere...
jve faire un structure come link me l'a dit....

avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406