SAlut à tous!
Je viens ici présenter Easy Coding, alias ECode, petit projet que je développe en même temps que coder en C des jeux/progs, ave cla précieuse aide de KekevVTT...
Qui n'a jamais eu marre d'avoir pleins de petites fonctions traîner ici ou là-bas, fonctions très utiles, mais que vous devez à chaque fois réécrire/recopier?
Avec Easy Coding, vous aurez une petite lib de fonctions toutes utiles et toutes chouettes, du Int to String, jusqu'à la détermination de la vlaeur d'un bit dans un int!
Désormais, ECode détient des fonctions de détections de touches de nouvelles génération, dignes de FAstKeyDown, mais avec la compatibilité en prime! Fini les versions G75 plus lentes que les G85+! Fini les boucles de jeu ralenties pour rien!
Voici une petite liste non exhaustive venant du .h actuel
/**OTHERS**/
char* input(char* c, int x, int y, int longueur, char nb);
int numArray_char(char* arr);
int numArray_int(char* arr);
Ca donne envie?
Ce n'est qu'un projet, donc je ne publie pas directement les sources, mais peut-être après avoir étoffé le bousin
?-Pourquoi avoir fait cette lib?
R-Je me sentais pas d'avoir à chaque fois une lib standard de 2ko pour une fonction, donc j'ai fait ici des fonctions facilement sélectionnables, et qui ne dépendent de rien (sauf input, mais fxlib.h, c'est LE fichier, quoi!).
Ainsi vous pouvez avoir aussi bien une fonction d'appelée, que toute la lib, en un seul define!
LIB RELEASED! Sous license Creative Commons:
C'est à dire que vous pouvez le modifier, le publier, l'utiliser, mais à condition de le republier sous les mêmes conditions ( même license) et d'iattribuer l'oeuvre originale, c'est à dire indiquer au moins mon pseudo Eiyeron dans les sources, ou dans le programme en execution.
Maj du 28/08/2011 à 1:23: AJout de la détection de la carte SD, et correction de la doc...
Mini Hotfix à 11:58: correction de AnyKeyDown.
Re Hfix pour recorrection. Décidemment!
05/09/2011 10:33 : Minif fix de nom de fonctions
18/09/2011 15:21: J'ai enfin les codes pour G75
13/10/2011: après un oubli, j'esaye de réparer mon eeruer en ajoutant d'autres corrections pour des fonctions. Il me reste à corrigerquelques trucs, mais il me faut tester.
18/10/2011: COrrections de KevkevVTT, qui mérite sa place de co-programmeur
Hey! KeyDOwn fonctionne avec un cpuspeed dans le caisson! o/
ça a l'air pas mal, même très bien mais tu devrais ajouter un commentaire pour décrire l'utilité de chaque fonction, car j'ai du mal a comprendre certaines fonctions (comme void charToHex(char* result, unsigned char hex);)
J'ai aussi des idées de fonctions a ajouter :
void printf(int x, int y, char* c)
{
locate(x,y);
Print(c);
}
void printfNumb(int x, int y, int n)
{
char c[20]="";
intToStr(c, n);
locate(x,y);
Print(c);
}
Ces fonctions sont assez explicites et faciles a comprendre.
Je suis sur que l'on peut en trouver d'autres comme ça, mais en tout cas, bravo pour ton initiative
Merci bien.
@kev' je mettrai des commentaires, et une mini-doc...
Je vais prendre, ça peut servir
J'avais déjà pensé à locate, mais pas pensé à le mettre
Mais faut pas trop faciliter, car certaines fonctions, je ls mets en fonctions, car si je les mets en préprocesseur #define FONC (gnagna) (gna gna), on y perd en poids, mais on y gagne en vitesse; mais étant donné que c'est énormément source de bugs: je laisse en fonction.
Autre détail: printf() sera plus lent que le double appel locate + print, mais là, je compte mettre un petit switch pour gérer le cas (Reversed/Normal
Pour printf, pour x/y, un unsigned char suffit, car les coordonées ne dépassent pas 255
Ajouté le 06/07/2011 à 20:07 :
Ajout de fonctions!
Obtenez des int à partir de strings!
Y a moyen d'inliner certaines de ces fonctions ?
Ca me fait chier de voir que pour une fonction de 2 lignes, non recursive, on ait a toucher autant a la stack
Ohoho, vaut mieux faire des macro que se casser la tête a essayer d'inliner de manière un minimum standard en C >_<'
J'avais eu besoin de fonctions inline y'a quelques temps (impossible à écrire en macro), j'ai fait des tests pour voir ce que sortait les compilo en fonction des méthode utilisée pour avertir le compilo qu'il faut inliner la fonction (pour GCC au moins 5 ou 6 syntaxes différentes), et t'as rarement le résultat que t'attends. Un petit lien pour GCC en norme C99 (seule qui accepte officiellement le inline) par exemple: http://www.greenend.org.uk/rjk/2003/03/inline.html
Mais comme le compilo renesas suis pas la norme C99, et encore moins les conventions GCC, je ne sais même pas si il y a une syntaxe inline ou pas
Mais sinon, 100% d'accord avec (Ponce) Pylat' (oui, j'ai osé le faire >_<'), pour des fonctions de ce genre, il faut absolument faire une implémentation en macro (élémentaire quand ça ne doit rien retourner, ou que c'est une fonction qui effectue des opérations de bases entre les opérandes quoi) : même si pour le projet lambda tu verras pas la différence, le code est mieux optimisé en vitesse (en vu ce qu'il y a dans ces fonctions, il ne doit même pas gagner en taille).
Et puis je vois que je suis pas le seul à qui ça fait l'effet d'une craie qui grince bien fort sur un tableau de lire ça quoi
Et si tu fais un minimum attention à deux trois trucs Eiyeron, t'auras jamais rarement des problèmes avec tes macros t'en fait pas
(pour commenter le projet en général, par ce que c'est le topic quand même, je pense que c'est une bonne idée, mais cela implique d'avoir un code impec', entre autre par ce qu'il va être utilisé comme "base" par de nombreux autres programmeur :o)
----------------------------------
Une bataille navale avec Intelligence Artificielle sur Graph 35? C'est ICI !
Projets en cours :
*CGUI++, Une GUI C++ multi-plateforme conçue pour fonctionner sur calculatrices.
*Tiles Creator, un environnement de création et gestion de ressources graphiques.
Tu pourrais aussi ajouter une fonction Getkey performante et compatible avec tous les modèles.
J'y connais pas grand chose mais ça permettrait de régler le problème de Hard Game ou Orton
AHAHAHAHA!
Tant que je ne sais pas comment fonctionne ce foutu getkey, tu peux toujours t'accrocher, surtout qu'au départ, le rapid getkey vient de kristaba, si lui ne sait pas, je doute qu'on puisse savoir comment.
Mais déjà on peut faire un bon fix: si g85, alors radip key si pas g85, alors iskeypressed
Planète-Casio est un site communautaire indépendant et n'est donc pas affilié à Casio | Toute reproduction de Planète-Casio, même partielle, est interdite
Les fichiers, programmes et publications postés sur Planète-Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des copyrights
Merci de respecter le travail des autres ! | CASIO est une marque déposée par CASIO Computer Co., Ltd