Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Problèmes SDK divers et variés
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Problèmes SDK divers et variés

Posté le 26/10/2013 11:00

Salut j'ai fait un petit programme mais je comprends pas pourquoi la fonction Print ne veut pas afficher la chaine que je lui demande ...

Le code
Cliquer pour enrouler
#include "fxlib.h"
#include "stdio.h"

unsigned int key;
int caractere, caractere2;
char chaine[21];
char ident[21];
char domaine[30];
char mdp[30];
char destinataire[40];
char sujet[30];
char corps[50];


int AddIn_main(int isAppli, unsigned short OptionNum){
    Bdisp_AllClr_DDVRAM();
    demmarage();
    identif();
    
    return 1;
}

demmarage(){
    int key;
    Bdisp_AllClr_DDVRAM();
    PrintMini(80,58,"Version 1.0",0);
    Bdisp_DrawLineVRAM(10,10,10,50);
    Bdisp_DrawLineVRAM(10,50,117,50);
    Bdisp_DrawLineVRAM(117,50,117,10);
    Bdisp_DrawLineVRAM(10,10,117,10);
    Bdisp_DrawLineVRAM(10,10,63,25);
    Bdisp_DrawLineVRAM(117,10,63,25);
    locate(7,5);
    Print("Messagerie");
    do{
        GetKey(&key);
    } while(key != 30004);
    
    Bdisp_AllClr_DDVRAM();
}

identif(){
    Bdisp_AllClr_DDVRAM();
    locate(1,1);
    Print("Identifiant:");
    locate(1,2);
    Print("+------------------+");
    locate(1,3);
    Print("|                  |");
    locate(1,4);
    Print("+------------------+");
    remplichaine();
    
    caractere2=0;
    do{
        caractere2++;
        ident[caractere2] = chaine[caractere2];
    } while(caractere2+1 != caractere);
    ========================== > ICI < ========
    locate(2,3);
    Print(ident);
    do{
        GetKey(&key);
    } while(key != 30004);
    
}

remplichaine(){
    caractere=0;
    do{
        caractere++;
    ======================= > ET ICI < ========
        locate(2,3);
        Print(chaine);
        GetKey(&key);
        //==========Conversion==========
        if (key==48)key= 71;
        if (key==46)key= 61;
        if (key==15)key= 51;
        if (key==135)key= 41;
        if (key==30004)key= 31;
        if (key==49)key= 72;
        if (key==50)key= 62;
        if (key==51)key= 52;
        if (key==137)key= 42;
        if (key==153)key= 32;
        if (key==52)key= 73;
        if (key==53)key= 63;
        if (key==54)key= 53;
        if (key==169)key= 43;
        if (key==185)key= 33;
        if (key==55)key= 74;
        if (key==56)key= 64;
        if (key==57)key= 54;
        if (key==30025)key= 44;
        if (key==30015)key= 34;
        if (key==187)key= 75;
        if (key==30046)key= 65;
        if (key==40)key= 55;
        if (key==41)key= 45;
        if (key==44)key= 35;
        if (key==14)key= 25;
        if (key==30001)key= 76;
        if (key==149)key= 66;
        if (key==133)key= 56;
        if (key==129)key= 46;
        if (key==130)key= 36;
        if (key==131)key= 26;
        if (key==30007)key= 77;
        if (key==205)key= 67;
        if (key==168)key= 57;
        if (key==30002)key= 47;
        if (key==30023)key= 37;
        if (key==30021)key= 27;
        if (key==30006)key= 78;
        if (key==30008)key= 68;
        if (key==30016)key= 58;
        if (key==30020)key= 38;
        if (key==30018)key= 28;
        if (key==30009)key= 79;
        if (key==30010)key= 69;
        if (key==30011)key= 59;
        if (key==30012)key= 49;
        if (key==30013)key= 39;
        if (key==30014)key= 29;
        //==============================
        if(key==31)caractere=19;
        if(key==76)chaine[caractere]='a';
        if(key==66)chaine[caractere]='b';
        if(key==56)chaine[caractere]='c';
        if(key==46)chaine[caractere]='d';
        if(key==36)chaine[caractere]='e';
        if(key==26)chaine[caractere]='f';
        if(key==75)chaine[caractere]='g';
        if(key==65)chaine[caractere]='h';
        if(key==55)chaine[caractere]='i';
        if(key==45)chaine[caractere]='j';
        if(key==35)chaine[caractere]='k';
        if(key==25)chaine[caractere]='l';
        if(key==74)chaine[caractere]='m';
        if(key==64)chaine[caractere]='n';
        if(key==54)chaine[caractere]='o';
        if(key==73)chaine[caractere]='p';
        if(key==63)chaine[caractere]='q';
        if(key==53)chaine[caractere]='r';
        if(key==43)chaine[caractere]='s';
        if(key==33)chaine[caractere]='t';
        if(key==72)chaine[caractere]='u';
        if(key==62)chaine[caractere]='v';
        if(key==52)chaine[caractere]='w';
        if(key==42)chaine[caractere]='x';
        if(key==32)chaine[caractere]='y';
        if(key==71)chaine[caractere]='z';
        if(key==61)chaine[caractere]='.';
        if(key==57)chaine[caractere]='@';
    } while(caractere!=19);
    
    if(key==31)chaine[caractere]='\0';
    if(key!=31)chaine[caractere+1]='\0';
}


#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum){return INIT_ADDIN_APPLICATION(isAppli, OptionNum);}
#pragma section


la chaine ident fait 21 caracteres


Précédente 1, 2, 3, 4, 5, 6 ··· 10 ··· 20, 21, 22, 23 Suivante
Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

Citer : Posté le 21/02/2014 05:42 | #


Eh oh, doucement
Je te parle du SDK là
Dark storm Hors ligne Labélisateur Points: 11549 Défis: 176 Message

Citer : Posté le 21/02/2014 07:06 | #


Tu édite tes fichiers dans le SDK ? omg
Tu m'étonne que t'ai des problèmes après
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

Citer : Posté le 21/02/2014 07:40 | #


Déjà que je suis dans une machine virtuelle...
Si tu as une méthode pour compiler tout ça avec gcc, je suis preneur
Encore que l'émulateur est plutôt pratique...

Et rigole pas, le SDK est environ 20 fois plus rapide que le bloc-notes pour ouvrir les gros fichiers
mdr
Totoyo Hors ligne Membre d'honneur Points: 16044 Défis: 102 Message
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 21/02/2014 08:54 | #


Perso je passe par Visual C++ ou Sublime Text (car il est mieux pour la coloration syntaxique et plus rapide pour l'ouverture des fichiers) pour éditer le .c et j'ai le SDK d'ouvert à côté pour compiler. Après chacun fait comme il veux.
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 24/03/2014 22:16 | #


Petit soucis surement du a une erreur avec les tableaux que je maitrise pas encore totalement

Le code
Cliquer pour enrouler
#include "fxlib.h"
#include "MonochromeLib.h"
#include "solitr.h"

int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
int plateau[7][7];
int x_plateau, y_plateau;
int x_pointeur, y_pointeur;


Bdisp_AllClr_DDVRAM();

x_plateau = 30;
y_plateau = 10;

init_plateau(plateau);
affiche_plateau(plateau, &x_plateau, &y_plateau);

Sleep(500);
GetKey(&key);
Sleep(5000);

return 1;
}

void affiche_plateau(int *plateau, int* x_plateau, int* y_plateau)
{
int x, y;
// SPRITE DU PLATEAU
const unsigned char solitaire[]={
0xff,0xff,0xff,0xff,0xff,0xe0,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0xf,0xff,0xfe,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0xff,0xff,0xff,0xff,0xff,0xe0,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0xff,0xff,0xff,0xff,0xff,0xe0,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0xff,0xff,0xff,0xff,0xff,0xe0,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0x82,0x8,0x20,0x82,0x8,0x20,
0xff,0xff,0xff,0xff,0xff,0xe0,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0xf,0xff,0xfe,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0x80,0x8,0x20,0x82,0x0,0x20,
0xff,0xff,0xff,0xff,0xff,0xe0
};

ML_bmp_and(solitaire, *x_plateau, *y_plateau, 42, 42);
for(x=0; x<=6; x++){
for(y=0; y<=6; y++){
if(plateau[x][y] == 1) ML_point((*x_plateau)+3+7*x, (*y_plateau)+3+7*y, 3, ML_BLACK);
}
}
}

void init_plateau(int *plateau)
{
int x, y;
for(x=0; x<=6; x++){
for(y=0; y<=6; y++){
plateau[x][y] = 1;
}
}
}


#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum){return INIT_ADDIN_APPLICATION(isAppli, OptionNum);}
#pragma section


Le re
Cliquer pour enrouler

Executing Hitachi SH C/C++ Compiler/Assembler phase

set SHC_INC=C:\Documents and Settings\Damien\Bureau\Damien\New Folder\OS\SH\include
set PATH=C:\Documents and Settings\Damien\Bureau\Damien\New Folder\OS\SH\bin
set SHC_LIB=C:\Documents and Settings\Damien\Bureau\Damien\New Folder\OS\SH\bin
set SHC_TMP=C:\Documents and Settings\Damien\Bureau\Damien\Casio\Solitaire\Debug
    WARNING: The following dependant file(s) do not exist: "MonochromeLib.h" "solitr.h". Line: 74
"C:\Documents and Settings\Damien\Bureau\Damien\New Folder\OS\SH\bin\shc.exe" -subcommand=C:\DOCUME~1\Damien\LOCALS~1\Temp\hmkDF.tmp
C:\Documents and Settings\Damien\Bureau\Damien\Casio\Solitaire\solitr.c(18) : C1016 (W) Argument mismatch
C:\Documents and Settings\Damien\Bureau\Damien\Casio\Solitaire\solitr.c(19) : C1016 (W) Argument mismatch
C:\Documents and Settings\Damien\Bureau\Damien\Casio\Solitaire\solitr.c(81) : C2233 (E) Illegal array reference
C:\Documents and Settings\Damien\Bureau\Damien\Casio\Solitaire\solitr.c(91) : C2233 (E) Illegal array reference

HMAKE MAKE UTILITY Ver. 1.1
Copyright (C) Hitachi Micro Systems Europe Ltd. 1998
Copyright (C) Hitachi Ltd. 1998


    ERROR: Process failed with return code: 1
Build was not successful.

Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

Citer : Posté le 24/03/2014 22:18 | #


Ben, int *, ça fait un tableau à une dimension.
Si tu passes un tableau à deux dimensions, c'est int ** dans le prototype
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 24/03/2014 22:19 | #


Aaaah merci
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 24/03/2014 22:30 | #


Il va (normalement) quand meme te mettre une erreure, meme si tu met int**.En fait, les "simples" tableau 2D comme cela sont juste des tableaux 1D, mais dont le compilateur transforme le tab[x][y] en tab[x+taille*y] (ou y+taille*x, je ne sais plus).
Donc ta fonction

void init_plateau(int *plateau)
{
int x, y;
for(x=0; x<=6; x++){
for(y=0; y<=6; y++){
plateau[x][y] = 1;
}
}
}


devrait etre comme cela :

void init_plateau(int *plateau)
{
int x, y;
for(x=0; x<=6*6; x++){
plateau[x] = 1;
}
}

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 !
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 25/03/2014 17:36 | #


C'est x+tailledex*y en général
Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 25/03/2014 20:56 | #


Bon voila je fais face a un nouveau probleme ...
Je cherche a faire la somme des cases du tableau donc j'ai fait cette fonction:
La fonction
Cliquer pour enrouler
int somme_plateau(int* plateau)
{
    int x, somme;
    somme = 0;
    for(x=0; x<49; x++){
        somme = somme + plateau[x];
    }
    return somme;
}

Le soucis c'est que ça me retourne une somme de -2000495099 et quelques pour un tableau de 7*7 qui contient que des 1 ou des 0 je m’inquiète un peu
Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

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


D'abord, dans ces cas-là, il faut toujours passer la taille du tableau en paramètre, pour éviter les débordements (sauf si elle est constante).
Sinon, la fonction semble correcte, je ne vois pas ce que ça pourrait être d'autre.
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 25/03/2014 21:11 | #


Ben non d’après ce que m'as dis dodormeur hier (2 messages au dessus) ça marche mieux comme ça...
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 25/03/2014 21:11 | #


Si c'est un tableau de 7*7, je pense qu'il faut aller de 0 à 48 et non pas de 0 à 49
<<< Si jusque là vous aviez cru que mon pseudo est "Position", il est encore temps de regarder à gauche

Ça m'énerve les gens qui ne finissent pas leurs
Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

Citer : Posté le 25/03/2014 21:12 | #


Attends, tu as bien dit un tableau de 7*7 ? Il fait une ou deux dimensions ?
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 25/03/2014 21:13 | #


il fait 2 dimensions et oui c'est du constant en 7*7 mais de toute facon il est déclaré en 8*8
Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

Citer : Posté le 25/03/2014 21:13 | #


Ben, si il fait deux dimensions, il ne faut pas le passer en int *, mais en int ** !
Je crois que tu as mal compris ce qu'on voulait dire avec les tableaux à une et deux dimensions.
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 25/03/2014 21:14 | #


Je penses aussi
Pour moi 1D = tableau[taille] et 2D = tableau[taille_x][taille_y]
Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

Citer : Posté le 25/03/2014 21:15 | #


Là, oui.
Mais dans ta fonction, tu as un tableau 2D, mais tu fais tableau[x] ?!
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 25/03/2014 21:17 | #


ben j'ai suivi le post de dodormeur ou il dit que le compilateur le transforme en tableau 1D
Lephenixnoir En ligne Administrateur Points: 21330 Défis: 149 Message

Citer : Posté le 25/03/2014 21:18 | #


><

Quoi qu'en fasse le compilateur, toi tu l'utilises en tableau 2d comme d'habitude, d'accord ?
Précédente 1, 2, 3, 4, 5, 6 ··· 10 ··· 20, 21, 22, 23 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 v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 49 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