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 » **Le SDK pour fx-9860/Graph85** Topic officiel
Matronix Hors ligne Ancien administrateur Points: 6058 Défis: 82 Message

**Le SDK pour fx-9860/Graph85** Topic officiel

Posté le 18/07/2007 15:08

Vu la multitude de topics sur le SDK de la 85, j'ai décidé d'en faire un seul et unique, où l'on posera nos problèmes et explications sur ce même topic, et non pas sur 50, par souci de clareté et de facilité.

Des nouveautés ? Des problèmes ? Des idées ?
Exposez les ici !

Voici une liste de commandes commencées par Muelsaco. N'hésitez pas à rajouter vos commandes dans le topic je les rajouterai pour en faire profiter tout le monde. Merci.

// Locate X,Y,"Texte"
:arrow: locate(x,y); Print("Texte");

// Text X,Y,"Texte"
:arrow: PrintMini(x,y,"Texte",0);

// F-Line x1,y1,x2,y2
:arrow: Bdisp_DrawLineVRAM(x1,y1,x2,y2);

// Tracer une ligne blanche
:arrow: Bdisp_ClearLineVRAM(x1,y1,x2,y2);

// PxlOn x,y & PxlOff x,y
:arrow: Bdisp_SetPoint_VRAM(x,y,<couleur>)
<couleur> : 0 pour le blanc, 1 pour le noir

// Cls
:arrow: Bdisp_AllClr_DDVRAM();

// Actualiser l'écran
:arrow: Bdisp_PutDisp_DD();
Fonction très importante. Elle permet d'afficher une image tracée virtuellement dans la VRAM. Toute image doit d'abord être dessinée dans la VRAM puis affichée à l'écran. Vous ne verrez donc pas votre image s'afficher tant que vous n'aurez pas appelé Bdisp_PutDisp_DD(). À noter que les fonctions GetKey() et Print() l'appellent automatiquement.

While <exp1>
<code>
WhileEnd
:arrow:
while(<exp1>)
{
  <code>
}

// StoPict x
:arrow: SaveDisp(x);
x variant de 1 à 3 uniquement.

// RclPict x
:arrow: RestoreDisp(x);
  x variant de 1 à 3 uniquement.

// Ouvrir un popup (comme les erreurs syntaxe, etc)
:arrow: PopUpWin(<taille>);
  <taille> : de 1 à 8.


Rappels sur les variables globales : Source

* Les variables globales sont à utiliser avec précaution, puisqu'elles créent des liens invisibles entre les fonctions. La modularité d'un programme peut en souffrir et le programmeur risque de perdre la vue d'ensemble.
* Il faut faire attention à ne pas cacher involontairement des variables globales par des variables locales du même nom.
* Le codex de la programmation défensive nous conseille d'écrire nos programmes aussi 'localement' que possible.

L'utilisation de variables globales est jusitifiée, si

* Plusieurs fonctions qui ne s'appellent pas ont besoin des mêmes variables, ou
* Plusieurs fonctions d'un programme ont besoin du même ensemble de variables. Ce serait alors trop encombrant de passer toutes les variables comme paramètres d'une fonction à l'autre.


Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 35, 36, 37, 38, 39, 40, 41 ··· 46, 47, 48 Suivante
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 15/08/2014 18:37 | #


La memoire se supprime
De plus, il ne faut pas que deux calculatrices ai le même (oui je suis exigent)
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 15/08/2014 18:40 | #


Comment ça la mémoire se supprime ? fls0, tu connais ? Ou même la main ?
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 15/08/2014 18:40 | #


Ben on peut supprimer des fichiers de la memoire de stockage
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 15/08/2014 18:41 | #


Ben si tu supprimes la sauvegarde d'un programme, c'est de ta faute... tu pourrais utiliser le système RTC et quelques rand(). Une calto envoie à l'autre son numéro, et la première prend n-1.
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 21/08/2014 14:17 | # | Fichier joint


J'ai une erreur système pas très ordinaire, ça vous est déjà arrivé ?



Je précise que j'ai obtenu cela pendant le développement d'une fonction récursive, donc c'est peut-être la pile que j'ai explosé...
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 21/08/2014 14:19 | #


"Interrupt". C'est simple, ta System ERROR a été causée ou repérée par une interruption du processeur.
Pour exploser la pile, il te faut plusieurs centaines d'appels, alors c'est à voir...

On peut avoir le code de ladite fonction ?
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 21/08/2014 14:23 | #


Lephenixnoir a écrit :
On peut avoir le code de ladite fonction ?

Ça ira, merci, je vais me débrouiller. Je voulais juste savoir ce que signifiait cette erreur pour le débuggage.
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

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


Fais comme tu veux.
Pour faire clair, c'est (à mon avis) une interruption qui a déconné. Le problème, c'est qu'elle peut être appelée n'importe où n'importe quand pendant que ton code s'exécute.
Je serais tenté de dire que ton programme a déréglé quelque chose dans ces interruptions, mais c'est difficilement possible -- d'où mon intérêt pour la question.
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 21/08/2014 15:09 | #


Tiens tiens, j'ai fais quelques tests et j'ai trouvé un fait intéressant : le processeur ne supporte que 127 appels de ma fonction récursive, soit la valeur maximale d'un signed char.
C'est peut-être un de mes paramètres qui déconne, je vais regarder.

Ajouté le 21/08/2014 à 15:18 :
C'était bien ça, sûrement un paramètre que j'ai laissé s'incrémenter et qui modifié la mémoire au delà des 8 bits qui lui sont réservés...
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 21/08/2014 15:50 | #


Pour info (ça peut toujours servir), la pile fait 64 ko, soit 1.3 fois plus que la mémoire allouable.
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 22/08/2014 18:32 | #


Un autre problème, j'ai deux #define :
#define ABS(nombre) (nombre>=0?nombre:-nombre)
#define DISTANCE(x1,y1,x2,y2) ABS(x2-x1)+ABS(y2-y1)


Et cette ligne de code :
noeud->distance=DISTANCE(x,y,etre->cible_x,etre->cible_y);


Et ensuite, que vaut noeud->distance ? -11... -_-'

Quelqu'un a une explication rationnelle à ce phénomène paranormal ?
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 22/08/2014 19:09 | #


C'est à cause de ton define. Je te mets dans le mille que les ABS() dans le second define sont remplacés.
Règle d'or : Toujours encadrer les membres variables de parenthèses dans les macros.
Ta seconde ligne donne actuellement :
#define DISTANCE(x1,y1,x2,y2)
  (x2-x1>=0?x2-x1:[red][b]-x2-x1[/b][/red])+(y2-y1>=0?y2-y1:[red][b]-y2-y1[/b][/red])

#define ABS(x) ((x)>=0?(x):-(x))
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 22/08/2014 19:13 | #


O.K. merci
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 22/08/2014 19:14 | #


Positon a écrit :
Quelqu'un a une explication rationnelle à ce phénomène paranormal tout à fait normal ?

Venant d'une personne rationnelle comme toi
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 22/08/2014 22:52 | #


Lephenixnoir a écrit :
Venant d'une personne rationnelle comme toi, ...

...cela ne peut être que de l'humour.

Je disais ça par allusion au fait que dans le cas présent, une somme de valeurs à priori positives donne une valeur négative
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 23/08/2014 08:07 | #


Positon a écrit :
Lephenixnoir a écrit :
Venant d'une personne rationnelle comme toi, ...

...cela ne peut être que de l'humour.

Bien entendu, mais j'avoue avoir été surpris par l'humour quand même.

C'est sûr qu'on a vite fait de se faire avoir avec ces bêtises-là ><
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Citer : Posté le 23/08/2014 19:56 | #


Positon, si tu incrémentes sans arrêtes un Int par exemple, quand tu dépasseras sa borne supérieur, il déconnera et deviendra bien souvent "un nombre négatif".
(Donc en prog ça arrive relativement souvent, si tu ne fais pas attention que ton nombre devienne négatif sans que tu comprennes pourquoi.)
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 23/08/2014 20:28 | #


ouais m'enfin pour overflow un int il faut y aller (mine de rien un unsigned peut aller jusque 4 294 967 296).
Par contre pour les char et les short c'est beaucoup plus fréquent, et il faut faire attention.
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 !
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 27/08/2014 19:22 | #


J'ai un bug bizarre... j'ai une structure dont je passe l'adresse mémoire à une fonction, mais sa première composante est à chaque fois corrompue.
Alors bien sûr je pourrais mettre "char inutile" au début de ladite structure mais ce n'est probablement pas la meilleure idée... je préférerais d'abord comprendre pourquoi ça fait ça.
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 27/08/2014 19:25 | #


t'es sur que ton pointeur est correct ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 27/08/2014 19:49 | #


En réalité c'est un tableau, mais je ne vois pas en quoi ça serait problématique...
A noter d'ailleurs que seul le premier élément de ce tableau est concerné.
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 35, 36, 37, 38, 39, 40, 41 ··· 46, 47, 48 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 43 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