Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Problème addin
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Problème addin

Posté le 09/12/2013 13:45

voila, je suis en train de préparer quelques graphisme pour mon prochain jeu et il y a un problème. mon programme peut afficher des lignes mais dès que je mets un GetKeyWait, mon écran est blanc. Comment faire pour que les traits restent pendant que le GetKeyWait fonctionne?

PS, mon programme est en fichier joint

Fichier joint


Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ··· 18, 19, 20 Suivante
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 23/01/2014 20:09 | #


Ou alors tu met une boucle et tu fait avancer le pointeur en fonction de cette boucle
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 23/01/2014 20:10 | #


je pense que je vais mettre un boucle avec un sizeof(arg)
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 23/01/2014 20:30 | #


Marchera pas : sizeof(arg) te donnera la taille du pointeur

Fait une boucle, par exemple, l'affichage d'une chaine se fait souvent de cette manière :

void afficher(char *str)
(
   int i = 0;
   while(str[ i])
   (
      afficherChar(str[ i]);
      i++;
   )
)


En effet, une chaine se finit toujours par un '\0' qui correspond à un 0 en mémoire
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 23/01/2014 20:38 | #


Ah ok, donc je fais tourner la boucle tant que arg est différent de 0

Ajouté le 24/01/2014 à 17:39 :
int char2int(unsigned char* arg)
{
    int tailletab=0;
    int charconverti=0;
    int boucle=0;
    int boucle2=0;

    do{tailletab++;}while(arg[tailletab]);
    boucle2=tailletab;
    while(boucle!=tailletab){
        charconverti+=(arg[boucle]-48)*pow(10,boucle2-1);
        boucle++;
        boucle2--;
    }
return charconverti;
}


voici la fonction pour passer d'u char* à un int, par contre, le nombre à convertir doit faire moins de 4chiffres(donc il doit être en dessous de 9999) je sais pas où ça bug mais ça bug

Ajouté le 24/01/2014 à 18:47 :
j'ai 2 fonctions quasiment identiques
void loadingbuffercarte(int* stockage)
{
    int recuphandle=0;
    char searchmark[4]={0,0,0,0};
    char searchvirgule[1]={0};
    int curseur=0;
    char savebuffer[30];
    int savepos=0;
    int saveID=0;
    int autreX=11;
    int i=0;

    FONTCHARACTER PathName[]={'\\','\\','f','l','s','0','\\','M','O','N','S','T','R','E','S','.','c','s','v',0};
    recuphandle=Bfile_OpenFile(PathName,_OPENMODE_READ);
    
    Bdisp_AllClr_DDVRAM();

    memset(stockage,0,sizeof(stockage));
    PopUpWin(5);
    ML_rectangle(11,20,115,30,1,ML_BLACK,ML_TRANSPARENT);
    Bdisp_PutDisp_DD();
    
    while(saveID!=104){
//on lit cherche [ID]
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            Bfile_ReadFile(recuphandle,searchvirgule,1,curseur);
            curseur++;
            if(strcmp(searchvirgule,";")==0){savepos =curseur+3;}
        }while(strcmp(searchmark,"[ID]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit l'ID
        saveID=char2int(savebuffer);
        PrintV(10,10,saveID);
        Bdisp_PutDisp_DD();
        Sleep(2000);
        
        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [NO]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[NO]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit le nom
        for(i=0;i!=29;i++){stockage[i+(saveID)*105]=savebuffer[i];}
        
        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [AT]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[AT]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit l'attaque
        stockage[31+(saveID)*105]=char2int(savebuffer);

        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [DE]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[DE]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit la defense
        stockage[32+(saveID)*105]=char2int(savebuffer);

        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [NI]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[NI]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit leniveau
        stockage[33+(saveID)*105]=char2int(savebuffer);

    autreX+=1;
    ML_rectangle(11,20,autreX,30,1,ML_BLACK,ML_BLACK);
    Bdisp_PutDisp_DD();
    }
}

avec comme argument arg[105][34]
et
    int recuphandle=0;
    char searchmark[4]={0,0,0,0};
    char searchvirgule[1]={0};
    int curseur=0;
    char savebuffer[30];
    int savepos=0;
    int stockage[105][34];
    int saveID=0;
    int autreX=11;
    int i=0;
    FONTCHARACTER PathName[]={'\\','\\','f','l','s','0','\\','M','O','N','S','T','R','E','S','.','c','s','v',0};

    Bdisp_AllClr_DDVRAM();
    recuphandle=Bfile_OpenFile(PathName,_OPENMODE_READ);
    memset(stockage,0,sizeof(stockage));

    if(recuphandle>=0){
PopUpWin(5);
ML_rectangle(11,20,115,30,1,ML_BLACK,ML_TRANSPARENT);
Bdisp_PutDisp_DD();
        while(saveID!=104){
//on lit cherche [ID]
            do{
                Bfile_ReadFile(recuphandle,searchmark,4,curseur);
                Bfile_ReadFile(recuphandle,searchvirgule,1,curseur);
                curseur++;
                if(strcmp(searchvirgule,";")==0){savepos =curseur+3;}
            }while(strcmp(searchmark,"[ID]") !=0);
            Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit l'ID
            saveID=char2int(savebuffer);

            memset(savebuffer,0,sizeof(savebuffer));
//on cherche [NO]
            curseur +=4;
            savepos =curseur;
            do{
                Bfile_ReadFile(recuphandle,searchmark,4,curseur);
                curseur++;
            }while(strcmp(searchmark,"[NO]") !=0);
            Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit le nom
            for(i=0;i!=29;i++){stockage[saveID-1][i]=savebuffer[i];}
            memset(savebuffer,0,sizeof(savebuffer));
//on cherche [AT]
            curseur +=4;
            savepos =curseur;
            do{
                Bfile_ReadFile(recuphandle,searchmark,4,curseur);
                curseur++;
            }while(strcmp(searchmark,"[AT]") !=0);
            Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit l'attaque
            stockage[saveID-1][31]=char2int(savebuffer);

            memset(savebuffer,0,sizeof(savebuffer));
//on cherche [DE]
            curseur +=4;
            savepos =curseur;
            do{
                Bfile_ReadFile(recuphandle,searchmark,4,curseur);
                curseur++;
            }while(strcmp(searchmark,"[DE]") !=0);
            Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit la defense
            stockage[saveID-1][32]=char2int(savebuffer);

            memset(savebuffer,0,sizeof(savebuffer));
//on cherche [NI]
            curseur +=4;
            savepos =curseur;
            do{
                Bfile_ReadFile(recuphandle,searchmark,4,curseur);
                curseur++;
            }while(strcmp(searchmark,"[NI]") !=0);
            Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit leniveau
            stockage[saveID-1][33]=char2int(savebuffer);

autreX+=1;
ML_rectangle(11,20,autreX,30,1,ML_BLACK,ML_BLACK);
Bdisp_PutDisp_DD();
        }
        locate(1,1);
        Print("succes");
        for(i=0;i!=29;i++){savebuffer[i]=stockage[9][i];}
        Bdisp_AllClr_DDVRAM();
        PrintV(5,5,stockage[9][31]);
        PrintV(5,15,stockage[9][32]);
        PrintV(5,25,stockage[9][33]);
locate(1,6);
Print(savebuffer);


là, deuxième solution marche, la barre de progression est nickel, pas de prob, par contre la 1ere solution qui doit faire le même effet me donne 5111111107 comme 1ere ID alors que c'est 1 le premier ID du fichier, je suis compètement perdu
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 24/01/2014 19:24 | #


Fait voir un exemple d'appel de la fonction, j'ai une idée d'où ca peut venir
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 24/01/2014 19:29 | #


int buffer[105][34];

loadingbuffercarte(buffer);
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 24/01/2014 20:50 | #


Ce que je ferai :

Fichier texte :
1;monstre 1;10; 20; 30
2;monstre 2;15;25;35
3;monstre 3;2;3;4

// ID;nom;att;def;niv


structure de la bdd de monstres :
int monstres[nbMonstres][1 + 10 + 1 + 1 + 1 = 14]; // un int = 4 char, donc pour 40 caractères de nom, il t'en faut 10

monstres[ID][0] = ID
monstres[ID][1] -> monstres[ID][11] = nom;
monstres[ID][12] = attaque
monstres[ID][12] = défense
monstres[ID][12] = niveau


fonction d'initialisation :
void loadingbuffercarte(int *stockage)
{
    int recuphandle = 0;
    char *buffer = NULL;
    char buffer2[40];
    int type = 0;
    int curseur = 0;
    int curseur2 = 0;
    int tailleFichier;
    int monstre = 0;
    FONTCHARACTER PathName[]={'\\','\\','f','l','s','0','\\','M','O','N','S','T','R','E','S','.','c','s','v',0};

    recuphandle = Bfile_OpenFile(PathName,_OPENMODE_READ);
    
    ML_clear_vram();

    PopUpWin(5);
    ML_rectangle(11,20,115,30,1,ML_BLACK,ML_TRANSPARENT);
    ML_display_vram();

    tailleFichier = Bfile_GetFileSize(recuphandle); // on récupère la taille du fichier
    
    buffer = malloc(tailleFichier); // on copie le fichier dans le buffer
    Bfile_ReadFile(recuphandle, buffer, tailleFichier, 0);

    while(curseur < tailleFichier)
    {
        if(buffer[curseur] == ';' || buffer[curseur] == '\n') // si on tombe sur un ; ou un retour à la ligne
        {
            memcpy(buffer2, &buffer[curseur2], (curseur - curseur2) * sizeof(char)); // on copie ce qu'il y a entre deux points virgules
            
            switch(mode)
            {
                case 0 : // si on est sur l'ID
                    stockage[monstre][0] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;

                case 1 : // si on est sur le nom
                    memcpy(&(stockage[monstre][1]), buffer2, 40 * sizeof(char)); // on copie le nom dans le tableau
                    break;

                case 3 : // si on est sur l'attaque
                    stockage[monstre][12] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;

                case 4 : // si on est sur la défense
                    stockage[monstre][13] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;

                case 5 : // si on est sur le niveau
                    stockage[monstre][14] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;
            }
            memset(buffer2, 0, 40 * sizeof(char)); // on réinitialise le buffer2
            curseur2 = curseur + 1; // et la position du dernier curseur
            
            mode++;
            if(mode > 5) mode = 0; // on change le type de donnée
        }

        if(buffer[curseur] == '\n') monstre++; // on change de monstre

        ML_rectangle(11, 20, monstre + 11, 30, 1, ML_BLACK, ML_BLACK); // pour la barre de progression
        ML_display_vram();
    }

    free(buffer); // on libère la mémoire

    locate(1,1);
    Print("succes");
}


comment l'appeler :
int monstres[105][14];

loadingbuffercarte(monstres);


J'ai pas testé, mais ça devrait marcher (si j'ai pas oublié un ; quelque part). Au pire, regarde les commentaires, il doit y en avoir presque un par ligne
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 09:57 | #


Okay, j'ai compris même s'il y a quelques erreurs (par ex: tu n'as pas déclaré int mode=0; ou tu as mis attaque,defense et niveau dans la même case)
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 10:21 | #


Si t'as compris, c'est le principal
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 10:29 | #


et pour la fonction char2int? je sais ou il est le problème
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 10:33 | #


Teste ça :

int char2int(unsigned char* arg)
{
    int i = 0;
    int charconverti = 0;

    while(arg[i ])
    {
        charconverti = charconverti * 10 + (arg[i ] - '0');
        i++;
    }
    
    return charconverti;
}


Ajouté le 25/01/2014 à 10:35 :
Au passage, dans la fonction que j'ai faite dans mon pavé, met les buffer en unsigned char, ça évitera des potentiels problèmes de compilation.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 10:47 | #


heu, mon compilo me dit
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\systemdeux.c(471) : C2222 (E) Type not compatible for "="


pour la ligne
    buffer = malloc(tailleFichier); // on copie le fichier dans le buffer


avec unsigned char* buffer=NULL;
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 11:02 | #


Chelou ça...
Essaye de faire unsigned char *buffer; on sais jamais...
et buffer = (void*)malloc(tailleFichier);
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 11:30 | #


ça marche pas!! la barre de progression reste bloqué et y a rien qui se passe, j'ai mis des breakpoints et tout ce qui a dans if(buffer[curseur] == ';' || buffer[curseur] == '\n') ne se lancent pas.

Tu est sur qu'on peut faire buffer[curseur]? parce que à l'initialisation, c'est juste un pointeur unsigned char *buffer; ,pas un tableau
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 11:42 | #


Oui, j'en suis sur.
En gros, faire

buffer[curseur] = 0;
// est égal à
*(buffer + curseur) = 0;


Et le malloc fait comme si on créait un méga tableau de char.

En gros, quand tu fait

unsigned char tableau[10];
//  ce qui se passe dans le processeur :
char *tableau = malloc(10 * sizeof(unsigned char)


C'est la base des tableaux (et des pointeurs)

Vérifie que tu as bien bien des espaces entre les * et sizeof()
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 11:45 | #


    tailleFichier = Bfile_GetFileSize(recuphandle); // on récupère la taille du fichier
    
    buffer = (void*)malloc(tailleFichier); // on copie le fichier dans le buffer

il y a pas de * ni de sizeof(). :huh:
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 25/01/2014 11:48 | #


Ben il n'y en pas besoin... le sizeof permet d'avoir la taille d'un tableau, mais tu t'en fout, tu as déjà la taille que tu veux avec tailleFichier, et * ne sert que pour les pointeur, et je suppose que buffer en est un.
J'avais déjà eu le coup du pointeur qui bugue avec malloc et NULL, je sais plus trop comment j'avais résolu, je vais regarder
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 11:53 | #


Mais alors où est le problème? j'ai pensais que c'était if(buffer[curseur] == ';' || buffer[curseur] == '\n')

j'ai donc fait:
if(strcmp(buffer[curseur],";")==0 || strcmp(buffer[curseur],"\n")==0)


mais mon compilo veut pas C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\systemdeux.c(476) : C2201 (E) Cannot convert parameter "1"
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\systemdeux.c(476) : C2201 (E) Cannot convert parameter "1"
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 25/01/2014 11:55 | #


Caste le ";" en char*, c'est peut-etre ca

if(strcmp(buffer[curseur],(char*)";")==0 || strcmp(buffer[curseur],(char*)"\n")==0)
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 12:00 | #


non, c'est buffer[curseur] qui déconne. même en faisant if(strcmp(buffer[curseur],(char*)";")==0 || strcmp(buffer[curseur],(char*)"\n")==0) y a rien qui change
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 12:01 | #


Déjà pour un caractère, il faut mettre des 'a' et non "a" :

'a' = 0x61
"a" = pointeur sur un tableau {'a', '\0'}
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ··· 18, 19, 20 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 102 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