
Vous n'êtes pas identifié.
Salut à tous, ca fait quelques jours maintenant que vous me voyez trainer sur le forum, poser telle ou telle question, et bien voila : je vous annonce la sortie de mon tout premier ''jeu'' C pour Graph100(+), j'ai nommé MasterMind.
Je rappelle le principe : MasterMind est un jeu de reflexion. Vous devez decrypter un code de 4 chiffres, chaque chiffre étant compris entre 1 et 6
Pour cela vous avez 6 essais.
Lorsque vous choisissez "Nouvelle Partie" dans le menu principal , vous arrivez sur le plateau de jeu. A ce moment, vous devez entrer une serie de 4 chiffre, compris entre 1 et 6. La caltos analyse votre essai, et vous renvoie une indication pour trouver le code, sous forme de pions :
Un pion noir signifie que vous avez un chiffre qui est dans le code, et que ce chiffre est a la bonne position.
Un pion blanc signifie que vous avez un chiffre qui est dans le code, et que ce chiffre n'est pas a la bonne position.
Au bout de 6 essais, si vous n'avez pas trouver le code, la caltos vous l'indique. Notez que si oius avez fait une erreur de frappe, vous pouvez utiliser [DEL] pour corriger, et qu'az tout moment vous pouvez faire usage de [QUIT] pour retourner au menu principal.
Notez que j'aurait tres bien put faire ce prog en BASIC (pour ne rien vous cacher, c'est d'ailleur l'adaptation d'un de mes Jeu BASIC sur Graph 25), mais j'ai décidé de le faire en C pour 'faire mes premieres armes', m'habituer au C sur caltos avant d'attaquer des projetrs plus évolués (par rapport au BASIC).
Soyez donc indulgent, neamoins toute critique constructive est acceptée
PS : N'essayez pas de jouer avec l'emulateur, vous alllez vous peter les yeux (couleur de fond du plateu : gris clair)
Hors ligne
J'aurais bien aimé quelques commentaire, enfin bon... 
Hors ligne
On est pas super réactif par ici, avec l'essouflement de la communeauté...
En tout cas, ça fait plaisir de voir qu'il y'a encore des gens qui programment sur notre chère caltos !
Bon allez, je ressors mon cable et je teste ça !
Hors ligne
Alors, tout d'abord, je vois que tu as l'air d'aimer le libre, tu aurais pu donner les sources !
Bien, je lance l'exe. Première remarque : faudrait implémenter un mécanisme pour éviter la répetition des touches dans le menu (éviter que quand on laisse la flèche du haut appuyée, la sélectionne s'affole).
Ok, première partie foirée, mais j'ai pigé le concept
C'est très sympa et ça occupe bien, surtout qu'il n'a pas besoin d'être complexe pour être apprécié ce jeu !
Félicitations pour ton premier programme, donc 
Hors ligne
Merci beaucoup.
je vois que tu as l'air d'aimer le libre
Bien vu
Il faut savoir que dans le libre, on n'est pas obligé de donner les sources, l'important est que l'utilisateur soit libre de copier, libre distribuer, libre de vendre même si ca l'amuse. Il faut distinguer le libre de l'open source, ou la, la source est disponible au grand public.
Tout ce baratin pour dire que j'ai honte de donner mes sources car je sait qu'elles seront extrement critiquées :oops: :oops: :oops:
faudrait implémenter un mécanisme pour éviter la répetition des touches dans le menu
Bonne idée, à l'occasion je mettrais un getkey(2)
Hors ligne
Merci beaucoup.
je vois que tu as l'air d'aimer le libre
Bien vu
Il faut savoir que dans le libre, on n'est pas obligé de donner les sources, l'important est que l'utilisateur soit libre de copier, libre distribuer, libre de vendre même si ca l'amuse. Il faut distinguer le libre de l'open source, ou la, la source est disponible au grand public.
Tout ce baratin pour dire que j'ai honte de donner mes sources car je sait qu'elles seront extrement critiquées :oops: :oops: :oops:
Je veux aussi être libre de modifier ton programme pour l'adapter à mes besoins !
Mais pour ça, il me faut les sources :P
Enfin t'inquiètes pas, moi aussi j'ai eu honte de mes sources :P
Hors ligne
J'y reflechirais
Hors ligne
C'est pas une obligation hein 
Hors ligne
Je n'ai pas l'intention de m'arreter la en effet. Mais il me faudras beaucoup de temps pour arriver à votre niveau. Pour mon prochain jeu, je pense que ce sera un jeu genre 'Falldown' J'ai parcourus votre forum, j'ai vu qu'il en existait déjà un, mais j'ai envie de le faire moi même :P (je sais, c'est idiot)
Hors ligne
Désolé de pas pouvoir donner de commentaires... ce n'est pas que ton travail est inintéressant, mais c'est simplement que pour la plupart d'entre nous la Graph100 est enterrée depuis un moment sous un tas d'autres trucs, et qu'on n'a plus trop envie de la ressortir et de réinstaller tout le nécessaire pour transférer des add-ins
Personnellement ça fait une plombe que je n'ai plus rien transféré dessus, et je ne suis même pas sûr que ça remarcherait du premier coup sans devoir bidouiller un peu... et je suppose que ça doit être à peu près pareil pour les autres :?
Donc voilà, les quelques revenants nostalgiques (càd nous) qui trainent encore dans le coin pourront encore t'aider pour certains aspects techniques, mais je ne pense pas que ça ira jusqu'au test
Mais bon si ton travail pouvait motiver d'autres nouvelles recrues pour relancer la communauté, ça serait appréciable quand même 
Hors ligne
En effet c'est trés appréciable de voir des personnes arriver si vite a sortir un truc !
Je pense que fournir les sources est un bon moyen d'evoluer au contraire ;-)
Au pire on te fera des critiques constructives sur la structure de ton code, mais ce sera pour ton bien ! (et j'ai pas le temps de ressortir ma g100, surtout a 1000km de chez moi, le code peut m'aider a voir un peu ce que fait le jeu ;-) )
Et t'inquiete, personne ne piquera ton code !!
Hors ligne
C'est pas une histoire de se le voir piquer ou pas (quoi que :P ) mais je sait qu'il y a plein de chose à changer, et ca je le sait, donc j'essaie de m'appliquer mais je ne peut pas changer ma facon de coder comme ca, simplement parce que je le veut, donc pour l'instant je suis aps chaux pour montrer mes sources. Mais au fur et a mesure que je coderais je me sentirais certainement un peu plus enclein à les montrer.
Hors ligne
Voila, une nouvelle version qui sort, avec de grands changement!!! invisibles....
J'ai refondu totalement le code source (il est déjà un peu plus montrable), changé la structure, enlevé presque tous les gotos.
La seule nouveauté pour l'utilisateur, c'est que le menu ne s'affole plus.
Quand je trouverais le courage de faire un Readme en anglais, je l'uploaderais sur le file sharing
.
Disponible à l'adresse mentionnée dans le premier post.
Hors ligne
AHHHHHHHHHHHHHHHHHHHHH des GOTOS !
Vire moi ca vite fait !!!
Hors ligne
:-D
Hors ligne
lol
Hors ligne
tiens t'es presque a 2072 posts mr 2072 
Hors ligne
hehe que ce passera t-il alors...
Hors ligne
:cry:
Hors ligne
>> quelqu'un peut mettre ce thread dans le forumm news svp
Hors ligne
Je profite de la remontée subite de ce post par ce robot de merde qui polue le forum pour faire part de mes commentaires...
perso j'ai plus d'ordi avec un port série donc pour transmettre à la g100 soit faut que j'en remonte un avec les carcasses au fond de ma chambre, soit je me soude un nouveau cable avec port USB... mais pour l'instant j'ai pas le temps ni pour l'un ni pour l'autre... j'ai juste changé les piles de la calto histoire de pouvoir faire quelques operations simples...
pour ce qui est de donner les sources... vu que c'est pour s'entrainer que tu es passé au C sur calto en attendant de faire des gros projets,... il est dans ton intéret de montrer ton code meme s'il est nul et va recevoir beaucoup de critiques... de tout façon ici ont tous codé comme ça à nos debuts... l'intéret c'est qu'on peut te dire ce qu'il faut faire ou non pour que tu t'améliore. voilà !
bonne continuation !
Hors ligne
Je passe en speed , j'ai pas touché a ma caltos depuis des mois, encore moins a mes sources je suis occupé par un concours de chimie.
Je psote les sources comme ca a la rache
// Affichage.c de Master Mind //
// Fichier gerant les fonction d'affichages //
// efface un rectangle selon la position de l'essai,
void clear_rect( char essai ){
Coord A,B; // coordonnées des points pour le rectangle
switch(essai){
case 1:
A.x=24; A.y=47; B.x=63; B.y=62;
break;
case 2:
A.x=24; A.y=30; B.x=63; B.y=45;
break;
case 3:
A.x=24; A.y=13; B.x=63; B.y=28;
break;
case 4:
A.x=88; A.y=47; B.x=126; B.y=62;
break;
case 5:
A.x=88; A.y=30; B.x=126; B.y=45;
break;
case 6:
A.x=88; A.y=13; B.x=126; B.y=28;
break;
}
gxFillrect(A.x,A.y,B.x,B.y,GX_LIGHTGRAY);
}
// ecrit le nombre du joueur à la bonne position en fonction de son essai (1~6)
void write_try( char essai , int nombre ){
char x,y;
switch(essai)
{
case 1:
x=32; y=52;
break;
case 2:
x=32; y=35;
break;
case 3:
x=32; y=18;
break;
case 4:
x=96; y=52;
break;
case 5:
x=96; y=35;
break;
case 6:
x=96; y=18;
break;
}
writevalue(x,y,nombre);
}
// dessine le plateau de jeu dans le buffer
void draw_plateau(void){
int h;
// Le fond gris moyen
gxFill(GX_LIGHTGRAY);
//les lignes verticales de gauche … droite
gxVLine(0,0,63,GX_BLACK);
gxVLine(23,12,63,GX_BLACK);
gxVLine(64,12,63,GX_BLACK);
gxVLine(87,12,63,GX_BLACK);
gxVLine(127,0,63,GX_BLACK);
//les lignes horizontales de haut en bas
gxHLine(0,127,0,GX_BLACK);
gxHLine(0,127,12,GX_BLACK);
gxHLine(0,23,29,GX_BLACK);
gxHLine(64,87,29,GX_BLACK);
gxHLine(0,23,46,GX_BLACK);
gxHLine(64,87,46,GX_BLACK);
gxHLine(0,127,63,GX_BLACK);
}
// affiche les pions noirs, en fonction de l'essai
void draw_pions(char essai, char noir, char blanc){
char x,y,i,j;
switch (essai){
case 1:
x=6; y=56;
break;
case 2:
x=6; y=39;
break;
case 3:
x=6; y=22;
break;
case 4:
x=70; y=56;
break;
case 5:
x=70; y=39;
break;
case 6:
x=70; y=22;
break;
}
for (i=1 ; i<=noir ; i++){ // affiche les pions noirs
gxSpr_noM_noC(x,y,pion_noir);
x+=7;
if(x>13 && essai<=3){
x=6; y-=7;
}
if(x>77 && essai>=4){
x=70; y-=7;
}
}
for (j=1 ; j<=blanc ; j++){ // affiche les pions blancs
gxSpr_M_noC(x,y,pion_blanc);
x+=7;
if(x>13 && essai<=3){
x=6; y-=7;
}
if(x>77 && essai>=4){
x=70; y-=7;
}
}
}// defs de Master Mind //
// Structures //
struct Coord
{
char x;
char y;
};
typedef struct Coord Coord;
// Sprites //
//BMP Menu
unsigned char Menu[] = {
170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,170,2,0,0,0,0,0,0,0,128,
1,0,0,0,0,64,85,5,0,0,0,0,0,0,0,0,
0,0,0,0,0,160,170,10,0,0,0,0,0,0,0,128,
1,0,0,0,0,80,85,5,0,0,0,0,0,0,0,0,
0,0,0,0,0,168,170,10,0,0,0,0,0,0,0,128,
1,0,0,0,0,84,85,21,0,0,0,0,0,0,0,0,
0,0,0,0,0,170,170,10,168,0,0,0,0,0,0,128,
1,0,0,0,0,85,85,85,85,5,0,0,0,0,0,0,
0,0,0,0,0,170,170,170,170,10,0,0,0,0,0,128,
1,0,0,0,0,85,85,85,69,21,0,0,0,0,0,0,
0,0,0,0,128,170,170,170,170,10,0,0,0,0,0,128,
1,0,0,0,80,85,85,85,85,21,0,0,0,0,0,0,
0,0,0,0,160,170,170,170,170,170,0,0,0,0,0,128,
1,0,0,0,84,85,85,85,85,85,1,0,0,0,0,0,
0,0,0,0,168,160,170,170,170,170,42,0,0,0,0,128,
1,0,0,0,84,81,85,69,85,85,85,0,0,0,0,0,
0,0,0,0,160,170,170,170,170,138,168,0,0,0,0,128,
1,0,0,0,84,81,84,85,85,85,85,1,0,0,0,0,
0,0,0,0,168,168,170,162,170,138,170,2,0,0,0,128,
1,0,0,0,84,85,21,84,85,85,85,1,0,0,0,0,
0,0,0,0,168,170,170,170,136,170,170,2,0,0,0,128,
1,0,0,0,80,85,85,69,20,69,85,1,0,0,0,0,
0,0,0,0,168,170,170,34,168,170,170,2,0,0,0,128,
1,0,0,0,80,85,85,65,64,81,84,1,0,0,0,0,
0,0,0,0,160,170,170,42,162,170,168,2,0,0,0,128,
1,0,0,0,64,85,85,84,68,85,85,1,0,0,0,0,
0,0,0,160,162,42,42,170,162,170,170,34,0,0,0,128,
1,0,0,64,84,85,69,85,85,85,85,69,0,0,0,0,
0,0,0,32,130,170,162,138,170,170,170,42,0,0,0,128,
1,0,0,64,84,85,84,85,85,81,85,68,0,0,0,0,
0,0,0,32,34,170,170,170,42,170,170,34,0,0,0,128,
1,0,0,64,68,85,85,85,85,85,85,84,0,0,0,0,
0,0,0,0,0,168,170,162,170,170,10,34,0,0,0,128,
1,0,0,0,0,84,85,85,85,85,5,68,0,0,0,0,
0,0,0,0,0,168,170,170,170,170,2,0,0,0,0,128,
1,0,0,0,0,80,85,85,85,85,0,0,0,0,0,0,
0,0,0,0,0,160,170,170,170,42,0,0,0,0,0,128,
1,0,0,0,0,0,84,85,85,21,0,0,0,0,0,0,
0,0,0,0,0,0,168,170,170,2,0,0,0,0,0,128,
1,0,0,0,0,0,80,85,21,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,160,130,32,34,34,8,138,130,34,138,40,2,0,128,
1,0,80,69,16,17,69,16,21,69,69,21,17,1,0,0,
0,0,32,138,32,34,34,136,40,34,136,136,40,2,0,128,
1,0,16,68,16,17,69,16,16,68,65,20,17,1,0,0,
0,0,32,136,32,162,42,136,42,130,130,138,40,2,0,128,
1,0,16,68,16,17,69,16,21,4,69,1,69,1,0,0,
0,0,32,138,40,162,40,136,32,34,136,136,40,2,0,128,
1,0,80,69,21,81,80,21,21,69,69,21,69,1,0,0,
0,0,160,130,34,162,40,10,138,138,130,138,130,2,0,128,
1,0,16,0,0,80,80,0,0,4,0,0,69,1,0,0,
0,0,32,0,0,162,40,0,0,2,0,128,130,2,0,128,
1,0,16,0,0,81,80,0,0,0,0,0,1,1,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,4,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,128,162,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,64,0,5,0,0,0,0,0,0,0,128,
1,0,0,0,0,160,0,2,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,4,0,0,0,0,0,0,0,128,
1,0,0,0,0,32,0,10,0,0,0,0,0,0,0,128,
1,0,0,0,0,16,0,1,16,0,0,0,0,0,0,128,
1,0,0,0,0,2,128,138,0,0,0,0,0,0,0,128,
1,0,0,0,0,4,0,85,1,0,0,0,0,0,0,128,
1,0,0,0,128,2,10,0,128,0,0,0,0,0,0,128,
1,0,0,0,64,85,1,0,0,0,0,0,0,0,0,128,
1,0,0,0,32,170,0,32,0,8,0,0,0,0,0,128,
1,0,0,0,0,192,28,115,219,120,0,0,0,0,0,128,
1,0,0,0,0,192,38,102,155,249,0,0,0,0,0,128,
1,0,0,0,0,193,96,102,155,205,5,0,0,0,0,128,
1,0,0,0,0,192,126,102,155,143,33,0,0,0,0,128,
1,0,0,0,16,192,102,119,155,141,1,1,0,0,0,128,
1,0,0,0,0,240,56,255,155,141,1,0,0,0,0,128,
1,0,0,0,0,64,16,102,0,136,0,0,0,0,0,128,
1,0,0,0,0,32,0,34,3,112,0,2,0,0,0,128,
1,0,0,0,16,0,0,0,0,64,69,0,0,0,0,128,
1,0,0,0,8,0,0,2,0,128,0,2,0,0,0,128,
1,0,0,0,16,4,0,0,0,1,64,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,128,0,0,0,0,128,
1,0,0,0,80,48,4,0,0,0,64,1,0,0,0,128,
1,0,0,0,160,24,0,32,0,32,8,0,0,0,0,128,
1,0,0,96,227,25,54,143,199,217,112,103,0,0,0,128,
1,0,0,96,38,27,102,219,204,153,201,102,0,0,0,128,
1,0,0,96,6,27,102,27,204,217,205,102,0,0,0,128,
1,0,0,96,246,59,102,207,111,155,237,102,0,0,0,128,
1,0,0,96,54,31,118,211,100,159,93,102,0,0,0,128,
1,0,0,96,198,26,102,142,35,154,57,102,0,0,0,128,
1,0,0,0,0,4,64,0,0,65,17,102,0,0,0,128,
1,0,0,0,0,24,0,128,0,138,2,102,0,0,0,128,
1,0,0,0,0,16,20,0,4,1,1,0,0,0,0,128,
1,0,0,0,0,0,128,136,0,170,0,0,0,0,0,128,
1,0,0,0,0,0,17,69,81,17,0,0,0,0,0,128,
1,0,0,0,0,0,170,170,138,11,0,0,0,0,0,128,
1,0,0,0,0,0,64,17,80,1,0,0,0,0,0,128,
1,0,0,0,0,0,128,170,10,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,176,195,48,51,98,24,14,131,67,134,17,3,0,128,
1,0,240,199,48,51,98,24,159,199,207,143,57,3,0,128,
1,0,48,196,48,51,103,152,17,102,204,152,57,3,0,128,
1,0,48,204,48,51,103,24,48,230,192,152,57,3,0,128,
1,0,48,204,48,51,101,152,63,198,199,143,41,3,0,128,
1,0,48,204,48,179,109,152,63,6,206,128,109,3,0,128,
1,0,48,196,48,179,109,24,17,102,204,152,69,3,0,128,
1,0,240,135,63,179,104,30,159,207,143,143,69,3,0,128,
1,0,176,3,55,243,120,27,142,143,3,135,69,3,0,128,
1,0,48,0,0,240,120,0,0,6,0,128,131,3,0,128,
1,0,48,0,0,115,112,0,0,6,0,128,131,3,0,128,
1,0,48,0,0,115,112,0,0,2,0,128,131,3,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,208,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,64,88,3,0,0,0,0,0,0,0,128,
1,0,0,0,0,176,213,2,0,0,0,0,0,0,0,0,
0,0,0,0,0,24,170,12,0,0,0,0,0,0,0,128,
1,0,0,0,0,92,85,9,0,0,0,0,0,0,0,0,
0,0,0,0,0,138,170,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,100,85,20,196,0,0,0,0,0,0,0,
0,0,0,0,0,188,106,117,170,2,0,0,0,0,0,128,
1,0,0,0,0,91,85,170,84,21,0,0,0,0,0,0,
0,0,0,0,0,169,181,170,42,10,0,0,0,0,0,128,
1,0,0,0,128,170,84,93,85,21,0,0,0,0,0,0,
0,0,0,0,224,85,170,202,170,22,0,0,0,0,0,128,
1,0,0,0,80,85,117,21,117,85,0,0,0,0,0,0,
0,0,0,0,168,170,234,170,138,142,2,0,0,0,0,128,
1,0,0,0,84,68,85,84,81,53,19,0,0,0,0,0,
0,0,0,0,176,170,170,170,170,168,138,0,0,0,0,128,
1,0,0,0,68,81,21,76,85,87,209,0,0,0,0,0,
0,0,0,0,40,168,142,170,234,170,170,0,0,0,0,128,
1,0,0,0,84,5,69,68,85,87,85,3,0,0,0,0,
0,0,0,0,168,11,42,170,142,170,234,0,0,0,0,128,
1,0,0,0,104,85,85,85,69,5,18,3,0,0,0,0,
0,0,0,0,176,170,170,40,136,11,168,1,0,0,0,128,
1,0,0,0,72,81,117,85,16,192,20,1,0,0,0,0,
0,0,0,0,240,168,32,34,34,162,106,3,0,0,0,128,
1,0,0,0,160,21,81,117,65,85,181,0,0,0,0,0,
0,0,0,0,96,170,170,10,162,138,162,0,0,0,0,128,
1,0,0,64,65,85,93,81,65,113,157,68,0,0,0,0,
0,0,0,32,242,170,170,138,162,170,174,35,0,0,0,128,
1,0,0,64,132,85,85,81,117,23,117,76,0,0,0,0,
0,0,0,32,162,142,170,130,170,170,154,42,0,0,0,128,
1,0,0,64,4,81,197,85,93,81,97,84,0,0,0,0,
0,0,0,32,162,172,170,43,238,175,42,50,0,0,0,128,
1,0,0,0,0,208,21,85,213,20,14,68,0,0,0,0,
0,0,0,0,0,172,238,42,186,117,12,34,0,0,0,128,
1,0,0,0,0,232,193,213,217,222,2,0,0,0,0,0,
0,0,0,0,0,160,58,34,234,85,0,0,0,0,0,128,
1,0,0,0,0,192,100,144,44,46,0,0,0,0,0,0,
0,0,0,0,0,0,68,85,117,6,0,0,0,0,0,128,
1,0,0,0,0,0,148,126,173,0,0,0,0,0,0,0,
0,0,0,0,0,0,104,81,5,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
1,0,16,65,16,17,69,16,133,65,69,13,17,1,0,0,
0,0,160,130,32,34,39,8,10,162,130,154,0,2,0,128,
1,0,80,76,16,17,69,16,49,68,68,17,17,1,0,0,
0,0,32,136,32,34,34,8,32,34,128,136,40,2,0,128,
1,0,16,68,16,17,69,16,21,68,69,5,85,1,0,0,
0,0,32,136,32,162,40,136,42,2,138,131,40,2,0,128,
1,0,80,76,25,17,64,148,49,68,68,16,109,1,0,0,
0,0,160,194,42,162,40,11,138,170,194,138,130,2,0,128,
1,0,16,1,17,17,64,17,4,69,133,5,199,1,0,0,
0,0,32,0,0,32,32,0,0,2,0,128,198,2,0,128,
1,0,16,0,0,81,80,0,0,4,0,0,69,1,0,0,
0,0,32,0,0,34,32,0,0,0,0,128,130,2,0,128,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170 };
//Sprite Plot pour Menu
unsigned char plot[] = {
0,0,5,5,32,32,0,112,112,0,248,248,0,112,112,0,
32,32,0,0 };
// Pions pour l'affichage
unsigned char pion_noir[] = {
0,0,5,5,248,248,0,248,248,0,248,248,0,248,248,0,
248,248,0,0 };
unsigned char pion_blanc[] = {
0,0,5,5,248,248,0,136,136,112,136,136,112,136,136,112,
248,248,0,0 };// Game.c de Master Mind //
// Fonctions gérant les données du jeu //
// Fonction qui affiche le menu, laisse le choix à l'user et retourne 0 si nouvelle partie, 1 si quitter
char menu(void){
char yplot=28,is_pressed=false; // coord y du plot, et si une touche est préssée
while(getkey(1)!=K_EXE){ // boucle du menu, tant que EXE n'est pas appuyé
gxClearBuff(); // efface le contenu des buffers
gxDrawBmp( Menu ); // met le Menu dans le buffer
write(2,57,"Par Medivh");
wait(25); // ralenti un peu la boucle
if(getkey(1)==K_HAUT&&is_pressed==false){ // si le joueur appuye sur haut
is_pressed=true; // on signale qu'une touche est appuyée
if(yplot==28){ // et si le plot est déjà en haut
yplot=42;} // on place le plot en bas
else{ // si le plot est en bas
yplot=28;} // on le place en haut
}
if(getkey(1)==K_BAS&&is_pressed==false){ // si le joueur appuye sur bas
is_pressed=true; // on signale qu'une touche est appuyée
if(yplot==42){ // et si le plot est déjà en bas
yplot=28;} // on place le plot en haut
else{ // si le plot est en haut
yplot=42;} // on le place en bas
}
if(getkey(1)==0)is_pressed=false; // on signale qu'aucune touche est appuyée
gxSpr_noM_noC(27,yplot,plot); // affiche le plot a gauche
gxSpr_noM_noC(100,yplot,plot); // affiche le plot a droit
gxRefresh(); // rafraichis le buffer
} // fin de la boucle du menu
switch(yplot){
case 28:
return(0);
case 42:
return(1);
}
return(1);
}
//Fonction qui fait rentrer au joueur son essai, renvoie l'essai, ou -1 si le joueur veut retourner au menu
int enter_your_try(char i){
int essai=0; // L'essai du joueur
while(1){
while(getkey(1)!=K_EXE){ // boucle de getkey, tant que EXE n'est pas appuyé
wait(25); // ralenti un peu la boucle
clear_rect(i); // on rend la place à laquelle le joueur doit entrer les chiffres vierge
write_try(i,essai); // ecrit l'essai du joueur au bon endroit (fonction de i)
gxRefresh(); // rafraichis le buffer
switch(getkey(2)){ // on verifie si une touche est préssée
case K_1 : // et on execute l'action requise
if(essai<=666)essai = (essai*10)+1;
break;
case K_2 :
if(essai<=666)essai = (essai*10)+2;
break;
case K_3 :
if(essai<=666)essai = (essai*10)+3;
break;
case K_4 :
if(essai<=666)essai = (essai*10)+4;
break;
case K_5 :
if(essai<=666)essai = (essai*10)+5;
break;
case K_6 :
if(essai<=666)essai = essai*10+6;
break;
case K_DEL :
essai/=10;
clear_rect(i);
break;
case K_ESC :
return -1;
}
}
if (essai>=1111)return(essai);
}
}
//Fonction qui créé un nombre mystere composé de 4 chifres alea entre 1~6
void create_mystere(char* mystere){
char i;
srand (time (0)); // on initialise le générateur de nombre aleatoire utilisé après
for(i=0;i<=3;i++){
*(mystere+i) = 1+(rand()%6);
}
}
//Fonction qui analyse l'essai et renvoie le nombre de noir et blanc correspondant
void traite_essai(int essai, char* mystere ,char* noir, char*blanc)
{
char nbre[4] , use[4]; // on traiteras individuellment chaque chiffre, et on indique si tel ou tel chiffre est déja pointé
char k;
nbre[3] = essai%10; // on souhaite traiter chaque chiffre individuelement
nbre[2] = ((essai%100)-essai%10)/10; // pour cela, on decompose essai
nbre[1] = ((essai%1000)-essai%100)/100; // à l'aide du modulo
nbre[0] = ((essai%10000)-essai%1000)/1000;
for(k=0;k<=3;k++){
use[k]=false;
}
for (k=0; k<=3; k++){ // on donne le nombre de noirs
if (*(mystere+k)==nbre[k]){
*noir=*noir+1;
use[k]=true;
nbre[k]=0; // il faut faire en sorte que nbre[k] ne soit jamais plus utilisé
}
}
if (nbre[0]==*(mystere+1) && use[1]==false){
*blanc=*blanc+1;
use[1]=true;
goto un;
}
if (nbre[0]==*(mystere+2) && use[2]==false){
*blanc=*blanc+1;
use[2]=true;
goto un;
}
if (nbre[0]==*(mystere+3) && use[3]==false){
*blanc=*blanc+1;
use[3]=true;
}
un:
if (nbre[1]==*(mystere+0) && use[0]==false){
*blanc=*blanc+1;
use[0]=true;
goto deux;
}
if (nbre[1]==*(mystere+2) && use[2]==false){
*blanc=*blanc+1;
use[2]=true;
goto deux;
}
if (nbre[1]==*(mystere+3) && use[3]==false){
*blanc=*blanc+1;
use[3]=true;
}
deux:
if (nbre[2]==*(mystere+0) && use[0]==false){
*blanc=*blanc+1;
use[0]=true;
goto trois;
}
if (nbre[2]==*(mystere+1) && use[1]==false){
*blanc=*blanc+1;
use[1]=true;
goto trois;
}
if (nbre[2]==*(mystere+3) && use[3]==false){
*blanc=*blanc+1;
use[3]=true;
}
trois:
if (nbre[3]==*(mystere+0) && use[0]==false){
*blanc=*blanc+1;
use[0]=true;
goto fin;
}
if (nbre[3]==*(mystere+1) && use[1]==false){
*blanc=*blanc+1;
use[1]=true;
goto fin;
}
if (nbre[3]==*(mystere+2) && use[2]==false){
*blanc=*blanc+1;
use[2]=true;
}
fin:
}
// Indique au joueur qu'il a perdu et lui donne la solution
void game_over(char* mystere){
gxFillrect(1,1,126,11,GX_LIGHTGRAY); // efface une partie de l'écran
write(4,4,"La solution etait :"); // donne la solution au joueur
writevalue(102,4,mystere[0]); // mais on est obligé d'afficher chaque
writevalue(107,4,mystere[1]); // chiffre individuelement
writevalue(112,4,mystere[2]); // car ce n'est ni un int, ni un string
writevalue(117,4,mystere[3]);
gxRefresh();
getkey(0); // attend la pression d'une touche
}
// Indique au joueur qu'il a gagné
void game_sucess(void){
gxFillrect(1,1,126,11,GX_LIGHTGRAY); // efface une partie de l'écran
write(35,4,"Felicitations"); // signale au joueur qu'il a gagné
gxRefresh(); // rafraichis l'écran
getkey(0); // attend la pression d'une touche // attend un peu, sinon le menu prend le getkey() pour lui
}//Master.c
#include <sprWrite.h> // ecrit a l'aide de sprites
#include <time.h> // pour rand() et srand()
#include <gxlib10.h> // La librairie d'affichage 5GS
#include "utils.h" // Des fonx utiles
#include "defs.h" // les defs des sprites
#include "affich.c"
#include "game.c" // Je sait que c'est aps propre mais dla *****
int main(void) // début du programme
{
char mystere[4]; // le nombre a trouver
char noir , blanc; // nombre de noir et de blanc
char i; // variables de boucles
int essai; // essai du joueur
initialize(); // initialise le programme (desactAPO(), desalimente le buffer, ..etc)
while(1){
create_mystere(mystere); // on créé un nombre mystere
switch(menu()){ // affiche le menu, renvoie 0 si nouveau jeu, 1 si quitter
case 0:
/////////////////////
// Nouvelle partie //
/////////////////////
gxClearBuff(); // efface le buffer
draw_plateau(); // met le plateau de jeu dans le buffer
for ( i=1; i<=6; i++ ){ // le joueur a 6 essais
blanc=0;noir=0; // il faut remetre le nbre de blanc et noir a 0
gxFillrect(1,1,126,11,GX_LIGHTGRAY); // l'endroit ou est marqué 'Essai numero i' est vierge
write(30,4,"Essai numero"); // signale au joueur
writevalue(93,4,i); // qu'il en est a son Ième essai
wait(50); // ralentit un peu la boucle
essai=enter_your_try(i); // le joueur entre son essai
if(essai==-1)break; // Si ce que enter_your_try() a renvoyé vaut -1, on retourne au menu mais on affiche le mystere d'abord
traite_essai(essai,mystere, &noir, &blanc);// on traite l'essai, cette fonction renvoie dans noir et blanc le nombres de...noir et blanc
draw_pions(i,noir,blanc); // on dessine le bon nombre de pions (noirs et blancs) en fonction de l'essai
if (noir==4){ // si le joueur a trouvé le mystere
game_sucess(); // on lui indique qu'il a gagné
break;
}
}
game_over(mystere);
break;
case 1:
/////////////////////
// Fin du jeu //
/////////////////////
quit(); // rend la caltos prete pour son utilisation normale (actAPO, alimente le buffer touche...etc)
return(0); // quitte/retour au menu principal
}
}
} /////////////////////////////////////////////////////////////////////////////////////
//* <sprWrite pour CASIO Graph100> *//
// //
// Fichier à inclure dans votre projet //
// Permet d'écrire à l'aide de sprite en mode 5 couleurs //
// //
//*(c) Medivh - 2006 Basé sur gxLib 1.0 de Julien PATTE *//
/////////////////////////////////////////////////////////////////////////////////////
#include <gxLib10.h>
#include <string.h> // pour strlen()
#include <ctype.h> // pour islower(), toupper();
#include "sprWrite.h"
// sprites de tout l'alphabet moins ceux qui sont non-utilisés
// Si besoin, remplacez par les votre : 5px*4px, encodé avec SpriteMaker en mode 5 couleurs
unsigned char zero[] = {
0,0,5,4,96,96,0,144,144,0,144,144,0,144,144,0,
96,96,0,0 };
unsigned char un[] = {
0,0,5,4,32,32,0,96,96,0,32,32,0,32,32,0,
32,32,0,0 };
unsigned char deux[] = {
0,0,5,4,96,96,0,144,144,0,32,32,0,64,64,0,
240,240,0,0 };
unsigned char trois[] = {
0,0,5,4,96,96,0,144,144,0,32,32,0,144,144,0,
96,96,0,0 };
unsigned char quatre[] = {
0,0,5,4,32,32,0,96,96,0,160,160,0,240,240,0,
32,32,0,0 };
unsigned char cinq[] = {
0,0,5,4,240,240,0,128,128,0,224,224,0,16,16,0,
224,224,0,0 };
unsigned char six[] = {
0,0,5,4,96,96,0,128,128,0,224,224,0,144,144,0,
96,96,0,0 };
unsigned char sept[] = {
0,0,5,4,240,240,0,16,16,0,32,32,0,64,64,0,
64,64,0,0 };
unsigned char huit[] = {
0,0,5,4,96,96,0,144,144,0,96,96,0,144,144,0,
96,96,0,0 };
unsigned char neuf[] = {
0,0,5,4,96,96,0,144,144,0,112,112,0,16,16,0,
96,96,0,0 };
unsigned char deuxpt[] = {
0,0,5,4,96,96,0,96,96,0,0,0,0,96,96,0,
96,96,0,0 };
unsigned char ptvirgule[] = {
0,0,5,4,96,96,0,0,0,0,96,96,0,32,32,0,
64,64,0,0 };
unsigned char inf[] = {
0,0,5,4,16,16,0,32,32,0,64,64,0,32,32,0,
16,16,0,0 };
unsigned char egal[] = {
0,0,5,4,0,0,0,240,240,0,0,0,0,240,240,0,
0,0,0,0 };
unsigned char sup[] = {
0,0,5,4,128,128,0,64,64,0,32,32,0,64,64,0,
128,128,0,0 };
unsigned char ptint[] = {
0,0,5,4,96,96,0,144,144,0,32,32,0,0,0,0,
32,32,0,0 };
unsigned char arobase[] = {
0,0,5,4,112,112,0,16,16,0,240,240,0,144,144,0,
240,240,0,0 };
unsigned char A[] = {
0,0,5,4,96,96,0,144,144,0,240,240,0,144,144,0,
144,144,0,0 };
unsigned char B[] = {
0,0,5,4,224,224,0,144,144,0,224,224,0,144,144,0,
224,224,0,0 };
unsigned char C[] = {
0,0,5,4,96,96,0,144,144,0,128,128,0,144,144,0,
96,96,0,0 };
unsigned char D[] = {
0,0,5,4,224,224,0,144,144,0,144,144,0,144,144,0,
224,224,0,0 };
unsigned char E[] = {
0,0,5,4,240,240,0,128,128,0,224,224,0,128,128,0,
240,240,0,0 };
unsigned char F[] = {
0,0,5,4,240,240,0,128,128,0,224,224,0,128,128,0,
128,128,0,0 };
unsigned char G[] = {
0,0,5,4,112,112,0,128,128,0,176,176,0,144,144,0,
112,112,0,0 };
unsigned char H[] = {
0,0,5,4,144,144,0,144,144,0,240,240,0,144,144,0,
144,144,0,0 };
unsigned char I[] = {
0,0,5,4,112,112,0,32,32,0,32,32,0,32,32,0,
112,112,0,0 };
unsigned char J[] = {
0,0,5,4,16,16,0,16,16,0,16,16,0,144,144,0,
96,96,0,0 };
unsigned char K[] = {
0,0,5,4,144,144,0,160,160,0,192,192,0,160,160,0,
144,144,0,0 };
unsigned char L[] = {
0,0,5,4,128,128,0,128,128,0,128,128,0,128,128,0,
240,240,0,0 };
unsigned char M[] = {
0,0,5,4,144,144,0,240,240,0,144,144,0,144,144,0,
144,144,0,0 };
unsigned char N[] = {
0,0,5,4,144,144,0,208,208,0,176,176,0,144,144,0,
144,144,0,0 };
unsigned char O[] = {
0,0,5,4,96,96,0,144,144,0,144,144,0,144,144,0,
96,96,0,0 };
unsigned char P[] = {
0,0,5,4,224,224,0,144,144,0,224,224,0,128,128,0,
128,128,0,0 };
unsigned char Q[] = {
0,0,5,4,96,96,0,144,144,0,144,144,0,160,160,0,
80,80,0,0 };
unsigned char R[] = {
0,0,5,4,224,224,0,144,144,0,224,224,0,144,144,0,
144,144,0,0 };
unsigned char S[] = {
0,0,5,4,112,112,0,128,128,0,96,96,0,16,16,0,
224,224,0,0 };
unsigned char T[] = {
0,0,5,4,240,240,0,64,64,0,64,64,0,64,64,0,
64,64,0,0 };
unsigned char U[] = {
0,0,5,4,144,144,0,144,144,0,144,144,0,144,144,0,
240,240,0,0 };
unsigned char V[] = {
0,0,5,4,144,144,0,144,144,0,144,144,0,160,160,0,
64,64,0,0 };
unsigned char W[] = {
0,0,5,4,144,144,0,144,144,0,144,144,0,240,240,0,
144,144,0,0 };
unsigned char X[] = {
0,0,5,4,144,144,0,144,144,0,96,96,0,144,144,0,
144,144,0,0 };
unsigned char Y[] = {
0,0,5,4,144,144,0,144,144,0,96,96,0,64,64,0,
128,128,0,0 };
unsigned char Z[] = {
0,0,5,4,240,240,0,16,16,0,32,32,0,64,64,0,
240,240,0,0 };
unsigned char* Alphabet[] = {
zero,
un,
deux,
trois,
quatre,
cinq,
six,
sept,
huit,
neuf,
deuxpt,
ptvirgule,
inf,
egal,
sup,
ptint,
arobase,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
};
// fonction qui écrit une chaîne de charactère à l'aide des sprites de Alphabet[]
void write(int x, int y, char string[]){
int size , j;
char spr;
size = strlen(string); // on récupère la longueur de string dans size
for(j=0 ; j<size ; j++){ // pour chaque caractère de la chaine
if(islower(string[j])) // on verifie s'il est en minuscule
string[j]= toupper(string[j]); // si necesaire on le met en majuscule
spr = string[j]-48; // mon tableau est décalé de 48 par rapport à l'ASCII
gxSpr_noM_noC(x,y,Alphabet[spr]); // et on affiche le caractère
x=x+5; // sans oublier les espacements
}
}
// fonction qui affiche une valeur numerique decimale
void writevalue(int x,int y,int value)
{
int i,j,s=0,r;
char st[10];
if (value<0) {st[0]='-'; s=1;value=-value; } // si le nombre est négatif, on ajoute '-' et on décale la string d'iun rang
r=value;
for(j=1;r>9;j++) r/=10; // on calcule le nombre de chara dans l'int
for (i=0;i<j;i++) // pour chaque chara
{
st[j+s-i-1]='0'+value%10; // on remplie la string en commencant au fond, et en remontant
value/=10; // on décale le chiffre a afficher d'un cran
}
st[s+j]='\0'; // sans oublier le chara '\0' a la fin de la string
write(x,y,st); // et on affiche la string avec write (ci dessus)
}
void gxFillrect(int Ax, int Ay, int Bx, int By, char color)
{
int i;
for( i=Ay ; i<By ; i++){
gxHLine(Ax, Bx , i , color);
}
}///////////////////////////////////////////////////////////////////////////////////// //* <sprWrite pour CASIO Graph100> *// // // // Librairie permettant d'écrire à l'aide de sprite en mode 5 couleurs // // // //*(c) Medivh - 2006 Basé sur gxLib de Julien PATTE *// ///////////////////////////////////////////////////////////////////////////////////// void write(int x, int y, char string[]); void writevalue(int x, int y, int value); void gxFillrect(int Ax, int Ay, int Bx, int By, char color);
//Utils . c
#include <gxLib10.h>
#include "utils.h"
#define NUMBER_SAVE 6
unsigned int OldInt[NUMBER_SAVE][2]; // desactint() / actint()
unsigned char lastkey=0; // getkey()
// Wait, ralenti le programme
void wait(long t){long i;
for (i=0; i<=t*100;i++);}
// Clearkeybuf : vide le bufffer touche
void clearkeybuf(void)
{
asm{
mov ax,0x40
mov es,ax
mov al,es:0x1B
mov es:0x1D,al
}
}
// Desactive une l'interruption designee par intrp.
// Pos represente l'endroit de la sauvegarde.
// Fonction de DB-lib.h par Swifter - SWF Prod 2004
void desactint(unsigned char intrp,unsigned char pos)
{
void* adrs=&OldInt[pos<<1];
asm{
xor ax,ax
mov es,ax
mov al,intrp
mov di,ax
mov si,adrs
shl di,0x2
mov ax,es:[di+2]
mov ds:[si+2],ax
mov ax,es:[di]
mov ds:[si],ax
mov ax,es:0x03FE
mov es:[di+2],ax
mov ax,es:0x03FC
mov es:[di],ax
}
}
// Reactive une interruption desactivee auparavant.
// Fonction de DB-lib.h par Swifter - SWF Prod 2004
void actint(unsigned char intrp,unsigned char pos)
{
void* adrs=&OldInt[pos<<1];
asm{
xor ax,ax
mov es,ax
mov al,intrp
mov di,ax
mov si,adrs
shl di,0x2
mov ax,ds:[si+2]
mov es:[di+2],ax
mov ax,ds:[si]
mov es:[di],ax
}
}
// Getkey, retrouve si une touche est préssée
unsigned char getkey(unsigned char mode)
{
top:
asm{
xor ah,ah
mov al,lastkey
mov dx,0xA80
div dh
mov cx,ax
mov ax,0x1
shl ax,cl
mov cl,ch
shr dl,cl
mov dh,0x2
mov ch,0x6
}
loop0:
asm{
out 0x13,ax
in al,0x13
and al,dl
cmp al,0x0
jne test
mov ax,0x1
mov dl,al
dec dh
jne loop0
mov ax,0x2
mov dx,0xA02
jmp loop1
}
test:
asm{
mov ch,0x2C
cmp dh,0x2
jne endtest
dec dh
cmp dh,mode
jne null
}
return lastkey;
loop1:
asm{
out 0x13,ax
mov bx,ax
in al,0x13
cmp al,0x0
jne loop2
add dh,0xA
shl bx,0x1
mov ax,bx
cmp ax,0x800
jne loop1
xor dl,dl
mov lastkey,dl
}
null:
asm{
xor dh,dh
cmp dh,mode
je top
}
return 0;
loop2:
asm{
mov cl,al
and cl,dl
cmp cl,0x0
jne endtest
shl dl,0x1
dec ch
jne loop2
}
endtest:
asm{
add dh,ch
mov dl,0x1
cmp dl,mode
je end
cmp dh,lastkey
jne end
jmp null
}
end:
asm mov lastkey,dh
return lastkey;
}
// initialise le programme
void initialize(void){
desact_APO(); // desactive l'alimentation automatique
clearkeybuf(); // vide le buffer touche
desactint9(); // desactive l'alimentation du buffer touche
gxSetMode(true); // passe en mode 5 couleurs
}
// rend la calculatrice prete pour son fonctionnement normal
void quit(void){
gxClearBuff(); // on éfface le buffer
gxRefresh(); // et on rafraichis l'écran
gxSetMode(false); // repasse en mode C3
actint9(); // reactive l'alimentation du buffer touche
act_APO(); // reactive l'extinction automatique
}//utils.h /* DEFINITIONS */ void desactint(unsigned char intrp,unsigned char pos); void actint(unsigned char intrp,unsigned char pos); void wait(long t); void clearkeybuf(void); unsigned char getkey(unsigned char mode); void initialize(void); void quit(void); #define desactint9() desactint(0x9,0) #define actint9() actint(0x9,0) #define desact_APO() desactint(0x4A,1) #define act_APO() actint(0x4A,1) #define K_F1 101 #define K_F2 102 #define K_F3 103 #define K_F4 104 #define K_F5 105 #define K_F6 106 #define K_SHIFT 81 #define K_CTRL 82 #define K_OPTN 83 #define K_MENU 84 #define K_GAUCHE 91 #define K_DROITE 94 #define K_HAUT 92 #define K_BAS 93 #define K_ALPHA 71 #define K_VARS 72 #define K_PUISS 73 #define K_ESC 74 #define K_X 61 #define K_LOG 62 #define K_LN 63 #define K_SIN 64 #define K_COS 65 #define K_TAN 66 #define K_DC 51 #define K_X2 52 #define K_CRH_G 53 #define K_CRH_D 54 #define K_VIRG 55 #define K_FLECHE 56 #define K_7 41 #define K_8 42 #define K_9 43 #define K_DEL 44 #define K_ACon 45 #define K_4 31 #define K_5 32 #define K_6 33 #define K_FOIS 34 #define K_DIVIS 35 #define K_1 21 #define K_2 22 #define K_3 23 #define K_PLUS 24 #define K_MOINS 25 #define K_0 11 #define K_POINT 12 #define K_EXP 13 #define K_TIRET 14 #define K_EXE 15
Voila, + quelques libs que vous avez faite (celles de Julien entre autre)
PS : joli le nouveau design
Dernière modification par EldAnar (11 Mar 2007 17:01:51)
Hors ligne