Posté le 30/10/2014 23:25
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 252 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 30/10/2014 23:28 | #
Et lorsque je met sec_rec en float, lui aussi passe à 1 (alors que ce n'est pas sa valeur )
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 30/10/2014 23:39 | #
Essai avec :
cent_sec_rec=(record-((float)sec_rec))*100;
Citer : Posté le 30/10/2014 23:43 | #
Sinon tu peux aussi eviter de passer par des variables et faire directement le calcul dans l'affichage
PrintVariable(101, scroll+10, (recording[0]/6000), 1);
PrintVariable(108, scroll+10, (recording[0]/100)%60, 1);
PrintVariable(119, scroll+10, recording[0]%100, 1);
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 31/10/2014 17:59 | #
Un grand merci à dodo (en plus ca va me permettre d'optimiser ) et merci quand meme à xavier pour avoir pris la patience de regarder mon prbm
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 31/10/2014 18:32 | #
Je ne suis pas sûr qu'on modulo soit particulièrement plus optimisé que des divisions et soustractions ^^, enfin, si ça marche c'est déjà ça !
Citer : Posté le 31/10/2014 18:37 | #
Niveau Asm aussi, je pense que le modulo c'est pas super...
Ben tiens, je vais regarder ce qu'en dit gcc, en plus je cherchais comment le faire, s'il n'y avait pas par hasard en instruction.
Citer : Posté le 31/10/2014 19:22 | #
Maintenant tout dépend de ce qu'on appelle optimiser
Au niveau de la ram, c'est mieux que d'avoir des variables, par contre au niveau de la vitesse d’exécution, c'est clair qu'il vaut mieux retenir le résultat plutôt que de le recalculer a chaque fois
Mais au niveau de la lisibilité, les modulos sont quand même vachement clair
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 31/10/2014 19:46 | #
Oui mais là n'est pas le problème : c'est beaucoup plus optimisé d'utiliser des soustractions et des divisions que des modulos.
D'ailleurs même la division et la racine carrée flottantes sont plus rapides que le modulo !
Citer : Posté le 11/11/2014 16:05 | #
Salut j'ai toujours une erreur quand je cherche a simplifier la moyenne de temps.
int scroll=2, min_rec=0, sec_rec=0, trou;
while(IsKeyUp(KEY_CTRL_MENU)){
ML_clear_vram();
if(IsKeyDown(KEY_CTRL_DOWN) && scroll>-74) scroll--;
if(IsKeyDown(KEY_CTRL_UP) && scroll<2) scroll++;
Txt_Text("Meilleur score", 0, scroll+10, TXT_7SEGMINI, TXT_OR);
PrintMini(105, scroll+10, (const unsigned char *)":", 1);
PrintMini(116, scroll+10, (const unsigned char *)":", 1);
PrintVariable(101, scroll+10, (recording[0]/6000), 1);
PrintVariable(108, scroll+10, (recording[0]/100)%60, 1);
PrintVariable(119, scroll+10, recording[0]%100, 1);
Txt_Text(".de jeu", 0, scroll+72, TXT_7SEGMINI, TXT_OR);
PrintMini(105, scroll+72, (const unsigned char *)":", 1);
PrintMini(116, scroll+72, (const unsigned char *)":", 1);
PrintVariable(101, scroll+72, (recording[16]/3600), 1);
PrintVariable(108, scroll+72, (recording[16]/100)%60, 1);
PrintVariable(119, scroll+72, (recording[16]%100)%60, 1);
Txt_Text(".de pause", 0, scroll+79, TXT_7SEGMINI, TXT_OR);
PrintMini(105, scroll+79, (const unsigned char *)":", 1);
PrintMini(116, scroll+79, (const unsigned char *)":", 1);
PrintVariable(101, scroll+79, (recording[17]/3600), 1);
PrintVariable(108, scroll+79, (recording[17]/100)%60, 1);
PrintVariable(119, scroll+79, (recording[17]%100)%60, 1);
Txt_Text(".moyen par partie", 0, scroll+86, TXT_7SEGMINI, TXT_OR);
PrintMini(105, scroll+86, (const unsigned char *)":", 1);
PrintMini(116, scroll+86, (const unsigned char *)":", 1);
trou=(int)(recording[16]/recording[15]);
PrintVariable(101, scroll+86, (int)(trou/100%60), 1);
PrintVariable(108, scroll+86, (int)(trou%100%60), 1);
PrintVariable(119, scroll+86, (int)(trou%100), 1);
Txt_Text(".moyen par pause", 0, scroll+93, TXT_7SEGMINI, TXT_OR);
PrintMini(105, scroll+93, (const unsigned char *)":", 1);
PrintMini(116, scroll+93, (const unsigned char *)":", 1);
trou=(int)(recording[17]/recording[19]);
PrintVariable(101, scroll+93, (int)(trou/100%60), 1);
PrintVariable(108, scroll+93, (int)(trou%100%60), 1);
PrintVariable(119, scroll+93, (int)(trou%100), 1);
ML_rectangle(0, 0, 128, 10, 0, 0, 0);
ML_rectangle(32, 0, 106, 10, 1, 1, 0); //ici on creer un cadre vide pour afficher statistiques
Txt_Text("Statistiques", 34, 2, TXT_7SEG, TXT_OR);
ML_display_vram();
}
}
voila ici c'est la fonction pour afficher les stats de mon jeu.
Recording est un int et recording[0] contient le best score multiplié par 100, recording[15] est le nombre de parties jouees, recording[16] le temps de jeu multiplié par 100, recording[17] le temps de pause multiplié par 100, recording[19] le nombre de pauses.
En clair le prbm c'est que la moyenne ne s'affiche pas correctement mais je ne sais pas comment faire...
Voila si vous avez une idée merci de la poster
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 11/11/2014 18:32 | #
Au fait, je viens de relire en entier le post principal, et QNAN signifie Quiet Not-A-Number : c'est une valeur dont t'as écopée en faisant un calcul illégal, et le Quiet signifie que si tu l'utilises dans un calcul, il renverra une autre valeur "standard" sans émettre d'exception. L'autre valeur est justement je pense un SNAN ou Signaling Not-A-Number, qui générera une exception si tu l'utilises.
Mais revenons-en au sujet :
Autrement dit, trou = (tpsJeu/100)/nbParties ⇒ tpsJeu = trou*nbParties*100 ⇒ tpsJeu/nbParties = trou*100.
Je me trompe ?
Citer : Posté le 11/11/2014 19:59 | #
Oui : trou=(tempsjeu*100)/nbparties
tempsjeu fois cent pour avoir les centiemes de secondes
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 11/11/2014 22:26 | #
Oui : trou=(tempsjeu*100)/nbparties
Ah, je pensais pas me faire avoir sur un truc aussi bête.
trou = (tpsJeu*100)/nbParties
⇒ tpsJeu = (trou*nbParties)/100
⇒ tpsJeu/nbParties = trou/100
Pourquoi modulo 60 ?
Citer : Posté le 12/11/2014 17:04 | #
PrintVariable(108, scroll+72, (recording[16]/100)%60, 1);
PrintVariable(119, scroll+72, (recording[16]%100)%60, 1);
Sur les totaux il ny a aucun prbm cest juste les moyennes qui sont foiree
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 12/11/2014 17:11 | #
le premier %60 est pour exclure les heures et le deuxieme les minutes
Tu peux pas faire ça.
Le temps de jeu, il est en quelle unité ?
Citer : Posté le 12/11/2014 19:35 | #
Euh le temps de jeu est en centieme de secondes : les deux derniers chiffres sont les cent de sec et apres de ne sont qur des sec
Mais je vois pas pq tu dis que je peu pas faire ca pasque le meilleur temps et le temps total de jeu et de pause marche (normalement )
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 12/11/2014 19:46 | #
Appliquer un double modulo, ça n'a pas de sens.
Bon, eh bien si comme je l'ai dit :
tpsJeu(cs)/nbParties(⌀) = trou(s)/100(10^-2)
Le nombre d'heures est :
h = trou/100/3600 = trou/36000 (automatiquement tronqué)
Le nombre de minutes :
m = ((trou/100)%3600)/60
Et le nombre de secondes :
s = (trou/100)%60
Y'a pas de raison de mettre un double modulo.
Citer : Posté le 12/11/2014 19:49 | #
Bah ca marche quand meme mais bon tu as raison je vais quand meme mettre ta solution
et sinon pour les moyenne tu as une solution ?
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 12/11/2014 19:50 | #
Ben c'est ça la moyenne >_<
Puisque trou/100 = tpsJeu/nbParties, c'est le temps de jeu moyen par partie...
Citer : Posté le 12/11/2014 19:51 | #
A oui jai confondu desole :boulet:
Ajouté le 01/02/2015 à 22:54 :
Hey donc si vous avez lu la rdp vous savez sans doute que jai repris la programmation de escape et ainsi je rencontre un nouveau problème bizarre : des fois le jeu se stoppe : cela arrive en particulier dans le menu au moment ou on entre (littéralement ) dans la partie JOUER... cela peut il venir de IsKeyDown ? Sachant que cela ne le faisais pas dans l'ancienne version mais que je nai pas du tout touche a cette partie la du code en tout cas ca se stoppe a une boucle : while(IsKeyDown(KEY_CTRL_DOWN)); Donc ca bouffe treeeeeeees vite les piles il faut appuyer sur reset tres vite pour les preserver au maximum... Avez vous une idee de ce qui peut causer ceci ?
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 03/02/2015 12:19 | #
IsKeyDown n'est pas compatible sh, peut être ça le problème