Posté le 09/12/2013 13:45
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 250 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 23/12/2013 12:25 | #
désolé dodormeur, j'ai remplacé et le probleme est toujours là.
Citer : Posté le 23/12/2013 15:19 | #
Fait voir le code corrigé
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 23/12/2013 17:01 | #
j'ai modifié les initialisations, lien
Citer : Posté le 23/12/2013 17:18 | #
tu n'as pas tout modifié
for(Ytableau=0; Ytableau<2;++Ytableau){
for(Xtableau=0;Xtableau<5;++Xtableau){
Xcase+=11;
if(tableau[Xtableau][Ytableau]>0)
{
cartejeuadver(Xcase,Ycase);
}
}
Pour parcourir un tableau avec une boucle for, tu doit faire for(i=0; i<tailleTableau;i++);
car i n'attendra pas tailleTableau, et c'est ce qu'il faut vu que les cases du tableaux vont de 0 a tailleTableau-1
Ajouté le 23/12/2013 à 17:19 :
d'ailleurs, ++i et i++ sont differents : for(i=0; i<tailleTableau;i++); le i commencera a 0, alors qu'avec for(i=0; i<tailleTableau;++i); commencera a 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 23/12/2013 17:48 | #
ok, c'est fait, et ça marche, merci beaucoup
PS: je mets le programme corrigé lien
Ajouté le 26/12/2013 à 20:43 :
et Comment afficher la valeur d'une variable?
Citer : Posté le 26/12/2013 21:37 | #
tu doit te faire une fonction d'affichage perso
void PrintV(int x,int y,int nombre)
(
int i;
int taille = 0;
char tableau(10) = ("0");
for(i=nombre;i;i/=10)taille++;
for(i = taille;i;i--,nombre/=10)tableau(i) = nombre%10 +'0';
Print(x,y,tableau);
)
lLe code devrait ressembler a ça
Je l'ai fait a main levée sans tester, mais normalement ca marche
(sur cet ordinateur je n'ai pas accès aux accolades et au truc pour les tableaux, je les ai remplacé par des () )
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 27/12/2013 00:27 | #
... et au truc pour les tableaux
On appelle ces trucs des crochets
Ton code est chelou, je n'ai pas vérifié mais tu n'a pas mis de '\0' pour finir la chaine... Et ce code ne gère pas les négatifs...
J'ai plus de batterie (2%), donc demain je vous mettrais le code de Pierrotll, à 100% fonctionnel
Citer : Posté le 27/12/2013 08:33 | #
Le tableau est initialisé, il est donc remplis de \0
Pour les négatifs, il suffit de rajouter une petite condition au début
Mais j'utilise d'habitude la fonction de PierrotLL, mais je n'y ai pas accès maintenant, donc j'ai du faire de tête
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 27/12/2013 12:13 | #
Il est rempli de "0", pas de "\0"
Citer : Posté le 27/12/2013 13:29 | #
non, il est rempli de 0, ce qui est équivalent a \0
le tableau, après initialisation, sera comme ça : 48,0,0,0,0,0,0,0,0,0 //48 = '0'
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 27/12/2013 18:40 | #
j'y comprend rien au code. je voudrais le modifier mais comme je sais pas comment ça fonctionne, je peux pas.
je ne savais pas qu'on pouvait mettre 4 arguments.
Citer : Posté le 27/12/2013 19:45 | #
Au debut, i = taille. on continue la boucle tant que i, et a chaque tour de boucle, i fait -1 et le nombre est / par 10. Tu peux parfaitement mettre plusieurs initialisations et incrementation, mais elle doivent etre séparée par des ,
Je te commente le code
(
int i;
int taille = 0;
char tableau(10) = ("0");//le tableau qui servira a recueillir le nombre
for(i=nombre;i;i/=10)taille++;//on calcule sa taille
for(i = taille;i;i--,nombre/=10)
tableau(i) = nombre%10 +'0';// on met le premier chiffre dans la case la plus a droite du tableau, et ensuite on fait ça pour tout les chiffres, en reculant d'une case a chaque fois ;)
Print(x,y,tableau);//on affiche
)
Ajouté le 27/12/2013 à 19:49 :
J'ai retrouvé la fonction de PierrotLL
Tu peux l'utiliser tel quelle, elle marche très bien et gère les négatifs
{
int i, length=0;
char str[12] = "0";
if(variable)
{
if(variable<0)
{
length++;
str[0] = '-';
variable = -variable;
}
for(i=variable ; i ; i/=10) length++;
str[length] = 0;
for( ; variable ; variable/=10) str[--length] = variable%10+'0';
}
PrintStr(X,Y,str);
}
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 27/12/2013 20:00 | #
elle est dans une lib, cette fonction? sinon, j'inclus quel header pour avoir PrintStr?
Citer : Posté le 27/12/2013 20:07 | #
Salut,
Une telle fonction existerai pour les nombres à virgule ? simple curiosité
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
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
Citer : Posté le 27/12/2013 20:13 | #
Non, c'est pas dans une lib, j'ai juste oublié de changer printstr, qui est une fonction perso remplace la par printMini
Et sinon il y aurait moyen de la rendre compatible pour les nombre a virgule, tout dépend de la précision voulue
Un exemple bourrin et basique pour avoir trois chiffres apres la virgule
{
int variable = nombre*100;
int i, length=0;
char str[12] = "0";
if(nombre<0)length = 1;//si il faut afficher le 0 avant la virgule
if(variable)
{
if(variable<0)
{
length++;
str[0] = '-';
variable = -variable;
}
for(i=variable ; i ; i/=10) length++;
str[length] = 0;
for( ; variable ; variable/=10)
{
if(variable = (int)nombre)
{
str[--length] = ','; //si il faut afficher la virgule, on passe la case et on y met la virgule
}
str[--length] = variable%10+'0';
}
}
PrintStr(X,Y,str);
}
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 27/12/2013 21:08 | #
merci
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
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
Citer : Posté le 28/12/2013 13:17 | #
j'aimerais pouvoir utiliser des tableaux de char dans 2 fonctions.
Dans la fonction infocarte() , j'initialise des 3 strings puis je vais chercher les textes dans infomonstre() en utilisant les pointeurs. je sais que les tableaux et les pointeurs c'est spécial quand c'est fusionné donc , ça ne m'étonne pas que le résultat n'est pas celui que je cherche. Y aurait il une autre solution?
lien
Citer : Posté le 28/12/2013 13:26 | #
Il y a une solution plus simple. En effet, quand tu declare un tableau, le nom du tableau est un pointeur vers le debut du tableau
void infocarte(int IDmonstre)
{
char string1[16];
char string2[16];
char string3[16];
string1[0]=0;
string2[0]=0;
string3[0]=0;
infomonstre(IDmonstre,string1,string2,string3);//on envoye l'adresse des tableauw
ML_line(57,0,57,64,ML_BLACK);
PrintMini(59,1,string1,1);
PrintMini(59,8,string2,1);
PrintMini(59,15,string3,1);
PrintMini(59,57,"ATK: 3000",1);
ML_display_vram();
}
void infomonstre(int IDmonstre,char* str1, char *str2, char *str3)//on recoit l'adresse des tableaux
{
[green]/*char string1[16];
char string2[16];
char string3[16];
string1[0]=0;
string2[0]=0;
string3[0]=0;*/[/green]
strcat(str1,"salut");//on peut juste faire ca, cela marchera vu que l'on a les tableaux
strcat(str2,"salut");
strcat(str3,"salut");
[green]/*
*str1 = string1;
*str2 = string2;
*str3 = string3;*/[/green]//ce code la n'aurait pas marcher de toute facon, il aurait fallu faire soit memcpy (je te laisser googler ca ;)) soit faire for(i = 0;i<16;i++)str1[i] = string1[i];
}
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 28/12/2013 13:33 | #
En effet, quand tu declare un tableau, le nom du tableau est un pointeur vers le debut du tableau
En fait, un tableau, c'est juste un pointeur qui pointe le debut du tableau qui est remplie de variable. c'est ça?
Citer : Posté le 28/12/2013 13:43 | #
Globalement, oui.
Quand tu déclare un tableau, la mémoire te libère la place demandée, la rempli des variables demandée a l’initialisation, et le nom du tableau devient un pointeur vers le début de cette zone. Et quand tu fait tableau[0], cela revient a faire *tableau, et tableau[1] revient a faire *(tableau+1). C'est pour cela que quand tu dépasse les limites du tableau, tu peux soit avoir des valeurs fantaisistes, soit modifier d'autres variables, soit même modifier l'OS de la calto (mais dans ce cas la une erreur system survient normalement).
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 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?