Posté le 09/12/2013 13:45
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 315 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/12/2013 12:07 | #
Encore un problème, mon programme affiche une carte à son lancement(bizarre le tableau est à 0) mais quand je place le curseur sur la carte, ça fait comme s'il n'y a pas de carte(aucune infos sur le coté)
lien
Ajouté le 30/12/2013 à 19:21 :
et comment on génére un nombre aléatoire?
Citer : Posté le 30/12/2013 19:51 | #
Pour ta première question, je ne peux tester le code, et a première vue je ne vois pas d'ou viens l'erreur.
Pour les nombres aléatoires, tu doit initialiser srand() avec une fonction get_ticks. et quand tu veux avoir un nombre aleatoire, tu fait rand()%max pour avoir un nombre compris entre 0 et max-1 (compris).
#define SCA 0xD201D002
#define SCB 0x422B0009
#define SCE 0x80010070
const unsigned int sc003b[] = {SCA, SCB, SCE, 0x3B};
#define RTC_GetTicks (*(sc_iv)sc003b)
int time_getTicks()
{
return RTC_GetTicks();
}
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 30/12/2013 20:03 | #
comment on fait ça? parce que la je suis complètement perdu avec le code que tu mas donné
Citer : Posté le 30/12/2013 20:20 | #
Cherche pas, c'est un syscall (moi non plus je ne le comprends pas, mais quand tu appelle la fonction time_getTicks(), cela te donne le temps qui s'est écoulé en ticks (1/128eme de seconde) depuis minuit (selon le processeur, donc rarement a l'heure)
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 30/12/2013 21:25 | #
Je l'ai mis dans un .c puis j'ai fais
Aléatoire =rand()%40;
Aleatoire est un int.
Le compileur mindique qu il y a des problèmes
Citer : Posté le 30/12/2013 21:25 | #
Il te met quoi comme erreur?
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/12/2013 10:02 | #
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\get_tick.c(15) : C2208 (E) Pointer required for "*"
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\get_tick.c(15) : C2500 (E) Illegal token "sc003b"
Ajouté le 31/12/2013 à 10:03 :
get ticks.c, c'est là où j'ai mis le code.
Citer : Posté le 31/12/2013 10:07 | #
J'avais oublié un machin, voila le code complet
#define SCB 0x422B0009
#define SCE 0x80010070
typedef int(*sc_i2cp2sip) (char*, char*, short int*, short int*);
typedef int(*sc_iv) (void);
typedef int(*sc_4i) (int, int, int);
const unsigned int sc003b[] = {SCA, SCB, SCE, 0x3B};
const unsigned int sc0015[] = {SCA, SCB, SCE, 0x15};
const unsigned int sc0248[] = {SCA, SCB, SCE, 0x248};
#define RTC_GetTicks (*(sc_iv)sc003b)
#define PutKey (*(sc_4i)sc0248)
#define GlibGetOSVersionInfo (*(sc_i2cp2sip)sc0015)
int OSVersionAsInt(void)
{
unsigned char mainversion;
unsigned char minorversion;
unsigned short release;
unsigned short build;
GlibGetOSVersionInfo( &mainversion, &minorversion, &release, &build );
return ( ( mainversion << 24 ) & 0xFF000000 ) | ( ( minorversion << 16 ) & 0x00FF0000 ) | ( release & 0x0000FFFF );
}
#define isOS2 (OSVersionAsInt() >= 0x02020000)
#define OS2(x,y) ((OSVersionAsInt() >= 0x02020000)?y:x)
static int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070};
static int (*SysCall)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode;
int time_getTicks()
{
return RTC_GetTicks();
}
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/12/2013 10:17 | #
int autre=0;
int main2=0;
int boucle=0;
srand(time_getTicks());
while(main2<6){
while(deck[autre][1]==1){
autre=rand()%40;
}
main[main2] =deck[autre][0];
[red]deck[autre][1] = 1;[/red]
main2+=1;
autre=0;
}
}
j'arrive pas à modifier le tableau deck. pourquoi?
Ajouté le 31/12/2013 à 10:18 :
ça me met cet erreur
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\systemdeux.c(182) : C2222 (E) Type not compatible for "="
Citer : Posté le 31/12/2013 10:38 | #
Personnellement, quand je passe un tableau en argument, je met
je ne savais même pas que l'on pouvait mettre
Je pense que le compilateur ignore le fait que tu mettes la taille des tableaux en argument, et du coup cela ne change rien.
Le compilateur "émule" les tableaux a deux dimensions, et quand tu utilise un tableau a deux dimension hors de la zone ou il a été déclaré, le compilo ne sait plus quoi faire
La solution pour éviter ce problème est de faire
en remplaçant tailleXTableau par la taille de la première colonne du tableau
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/12/2013 10:41 | #
quand je met pas les taille des tableaux en argument il me met
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\systemdeux.c(176) : C2233 (E) Illegal array reference
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\systemdeux.c(181) : C2233 (E) Illegal array reference
C:\Users\Yoann\Documents\CASIO\fx-9860G SDK\yugioh plateau\systemdeux.c(182) : C2233 (E) Illegal array reference
Citer : Posté le 31/12/2013 10:44 | #
fait voir un peu la fonction ou se trouve l'erreur
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/12/2013 10:47 | #
non, c'est bon, tous est régle.
encore un truc, j'ai un tableau [41][2]
je dois faire
pour faire deck[autre][0]=1;
Citer : Posté le 31/12/2013 10:52 | #
deck[nombrePremiereCase+nombreDeuxiemeCase*taillePremiereCase] = 1;
Donc dans ton cas, deck[autre+0*41] = 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/12/2013 11:18 | #
Pour en revenir à l'erreur précédente, deck est un tableau de pointeurs... (int *deck[41][2])
Si tu veux un pointeur sur un tableau, la fonction doit avoir comme argument int *deck
Si tu veut un tableau, l'argument doit être int deck[41][2]
Ajouté le 31/12/2013 à 11:22 :
En fait, faire deck[a] est égal à faire deck[a*41+b]
Citer : Posté le 31/12/2013 21:54 | #
il y a un probleme entre vos 2 affirmations.
pour un tableau[41][2], avec Dodormeur ça donne tableau[a+2*41]
et avec dark storm, ça donne [a*41+2], ce qui n'est pas la même chose
je sais pas si j'explique bien donc Dark Storm dit
et dodormeur dit
je suis carrèment largué car vous dites 2 choses complètement opposées.
Citer : Posté le 31/12/2013 22:13 | #
Après vérification, c'est Dodormeur qui a raison
http://www.commentcamarche.net/contents/120-langage-c-les-tableaux
Citer : Posté le 31/12/2013 23:28 | #
for(initmain=0; initmain<41;initmain++){deck[initmain][1]=1;}
Quand j'initialise la colonne 1 du tableau, CAD deck[][1], à un nombre différent de 0, mon jeu fonctionne parfaitement. Par contre, quand je l'initialise à 0, mon jeu fait de merveilleux bugs.
Citer : Posté le 01/01/2014 11:05 | #
petit truc a avoir: pour prendre un tableau de type matrice (un tableau de tableaux comme deck[41][2]) on peut faire comme ça:
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed
-mon tuto sur les Str
Mes calto: G25+, G75
Mon minecraft en dévelopement
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Citer : Posté le 01/01/2014 11:57 | #
Vérifie que pour 0 le jeu ne doit rien afficher. Parce que si tu n'as pas initialisé tes variables, elle prendront la valeur qui "traînait" la, et seront complètement fantaisiste. Et forcément, si tu affiche ça, ça fait des machins bizarres
Ajouté le 01/01/2014 à 11:58 :
@limachi : Uniquement si tu le déclare en tant que tableau de pointeur. Vu comment il déclare son tableau, c'est considéré comme un tableau unidimensionnel
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 01/01/2014 12:30 | #
en fait, le principe du tableau deck est de stocker,dans la première colonne deck[][0],les ID des monstres et,dans la deuxième colonne deck[][1],des booléens pour savoir si le monstre a déjà été pioché(pour pas le re-piocher plusieurs fois, 0->monstre pas encore piochée 1->monstre déjà piochée).
En clair, je n'affiche pas le tableau deck. Mais quand j'initialise deck[][1] à 0, rien ne va plus(ma main qui doit avoir 5 cartes en a 1,2,3 ou même 1000; les IDs sont farfelues car je dois avoir des IDs entre 0 et 40,et là j'en ai entre -157232354 et 1326487211
Ajouté le 01/01/2014 à 17:59 :
je tout re-verifier, tout est initialisé, donc normalement pas de problème, mais là c'est pas normalement et il y a toujours le problème
je vais tuer le compilateur
Ajouté le 01/01/2014 à 18:11 :
comment fonctionne memset? on peut l'utiliser pour les tableaux multidimensionnelles?