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 » **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 ··· 34, 35, 36, 37, 38, 39, 40 ··· 46, 47, 48 Suivante
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 10/08/2014 14:58 | #


Ya une virgule en trop je sais pas si c'est fait exprès a la fin de ta condition.
Sinon combien valent i et j quand ça buggue ?
Et t'es sur que la comparaison d'un short et d'un char est autorisée ?
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 10/08/2014 15:19 | #


Ah ah, le point-virgule qui passe inaperçu et qui fait tout foirer
Theprog est un génie, il a résolu mon problème en moins d'une minute
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 10/08/2014 19:19 | #


Cliquez pour découvrir
Cliquez pour recouvrir
int taille_pixels(char *texte)
{
    [purple]int[/purple] taille_texte = [maroon]0[/maroon];
    [purple]char[/purple] i;
    [b][blue]for[/blue][/b](i=[maroon]0[/maroon]; texte[i ] != [gray]'\0'[/gray] ;i++)
    {
        taille_texte += [maroon]4[/maroon];
        [b][blue]if[/blue][/b] (texte[i ] == [gray]'i'[/gray])                                            taille_texte += -2;
        [b][blue]if[/blue][/b] (texte[i ] == [gray]'n' or texte[i ] == 'K' or texte[i ] == 'r'[/gray])      taille_texte += [maroon]1[/maroon];
        [b][blue]if[/blue][/b] (texte[i ] == [gray]'m' or texte[i ] == 'M' or texte[i ] == 'N'[/gray] or
            texte[i ] == [gray]'Q' or texte[i ] == 'w' or texte[i ] == 'W'[/gray] or )  taille_texte += [maroon]2[/maroon];
    }
    
    [b][blue]return[/blue][/b] taille_texte;
}
Un peu plus propre
La mise en page fait un peu pourri par contre :/
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 10/08/2014 19:20 | #


J'ai juste vu un point virgule un faut pas s'affoler
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

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


Plus court, peut-être, mais plus propre ? Pas sûr.
L'intérêt avec ma méthode, c'est que je peux rajouter très facilement des caractères dans le tableau, car actuellement seuls les lettres font partie des cas particuliers
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 10/08/2014 19:35 | #


Rajouter une condition n'est pas plus dur
Plus propres parce que tu n'as pas des manipulations tordues sur les indices, pas de caractères pour signifier une nouvelle série, pas de caractère pour signifier la fin de ton tableau...
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 10/08/2014 20:03 | #


Ouais enfin... Les paquets de conditions c'est moche ><
Et puis tant qu'à faire plus propre, autant optimiser les fonctions de string, car je crois qu'il y en a une qui conviendrait.

Ninestars a écrit :
Plus propres parce que tu n'as pas des manipulations tordues sur les indices, pas de caractères pour signifier une nouvelle série, pas de caractère pour signifier la fin de ton tableau...

Soit mais... La fonction est déjà faite, je ne suis pas sur le point de la coder. Donc autant l'utiliser telle quelle
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 10/08/2014 20:31 | #


Après c'est toi qui voit
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 10/08/2014 21:36 | #


Peut-être un peu en retard, mais j'ai déjà codé une telle fonction, et il me semble que tu te casses bien la tête... en gros chez moi ça ressemblait à ça :
int length(const char *s)
{
  int l = 0, c;
  while(c=*(s++)) l+= 4 + 2*(c=='m' || c=='w') + (c=='n') /* etc... */;
  return l-1;
}

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 11/08/2014 20:52 | #


Vous y croyez vous ?

if(0)creature=get_araignee(liste_araignees,i)->pointeur_araignee;

Ici, j'ai droit à une erreur système, malgré la condition fausse...
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

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


T'es sur que l'erreur systeme est bien a cet endroit ?
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 11/08/2014 21:04 | #


L'instruction ne peut pas être exécutée... c'est peut-être le saut conditionnel qui fait foirer la machine. Mais vraiment... c'est énorme !
Je me souviens d'avoir déjà eu un tel bug. Malheureusement impossible de retrouver comment je l'avais corrigé... je crois que j'avais réécri l'algo.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 11/08/2014 21:04 | #


@Theprog : Je n'en ai pas le moindre doute.

Ajouté le 11/08/2014 à 21:17 :
En fait c'est vraiment du grand n'importe quoi. Le simple fait d'utiliser la variable creature provoque une erreur système. Il me suffit d'écrire if(0)creature et ça fout le bordel.
Ah ah c'est le coup de grâce

Ajouté le 11/08/2014 à 21:28 :
O.K., en fait c'est le S.D.K. qui était défoncé car il a fini je ne sais pas trop comment par faire son boulot.
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 11/08/2014 21:29 | #


Il nous fait des blagues le coquin
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

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


J'ai du nouveau sur le bug de TheProg (popup du SDK lorsqu'on lance une app système après que l'add-in émulé se soit arrêté), mais impossible de retrouver le topic...
main()
{
  return 1;
}

génère une erreur alors que
main()
{
  unsigned int key;
  GetKey(&key);
  return 1;
}

n'en génère pas.

C'est ce que je voulais dire quand je parlais de sortie brutale.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 15/08/2014 10:08 | #


Ha OK mais du coup on est obligé de faire valider en quelque sorte la sortie ?
En tout cas sur calcul ça ne dérange pas ?

Ajouté le 15/08/2014 à 11:55 :
Au fait,
Je voulais savoir si il existait un moyen d'identifier une calculatrice par rapport a une autre. Une sorte de numéro accessible par syscall ou non qui serait fixe.
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

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


Tu veux dire, une sorte de numéro de série ? Regarde dans la doc de SimLo.
Sinon, il est plus malin de l'attribuer par le programme (regarde le prog de PLL qui fait passer des balles sur deux caltos -- impossible de me souvenir de son nom).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

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


Oui mais il faudrait que ca reste le meme entre deux extinctions par exemple...
Je vais regarder du coté de la doc
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1243 Défis: 54 Message

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


C'est Flourish je crois le programme de PLL dont parlait LePhenixNoir ;).
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

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


Merci, c'est ça.


TheProg, tu n'as qu'à sauvegarder le numéro dans la mémoire.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
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)
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 34, 35, 36, 37, 38, 39, 40 ··· 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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 202 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