Remplacer le mythique point d'interrogation
Posté le 14/12/2018 11:59
Bonjour à tous, aujourd'hui je vous présente un petit projet, qui a son importance quand même, que j'ai commencé à développer depuis deux jours. Il s'agit de remplacer le fameux "?" en Basic que l'on met après une chaîne de caractères pour demander à m'utilisateur de saisir du texte ou des nombres. En gros c'est un éditeur de texte en mode graphique sur une ligne (pour le moment...
) qui reprends touts les caractères des touches de la calto même avec shift et alpha.
Le principe est simple, vous téléchargez ce programme (".INPUT", voir fichier joint) et vous le mettez dans la mémoire des programmes Basic (transfert basique en fait
). Dans votre programme, à l'endroit où vous voulez demander à l'utilisateur de saisir du texte ou des nombres, vous mettez dans la chaîne de caractères str2 ce que vous voulez afficher en entête de la saisie (ex:"texte a saisir", ou "votre nom"...etc), puis vous appelez le programme ".INPUT" avec la fonction "prog ". Le programme va renvoyer le texte saisit, ou le nombre, dans la chaîne de caractères str1.
Voici un exemple:
// Début de votre programme
"Saisissez votre nom:"→str 2
prog ".INPUT"
ClrText
Locate 1,1,str 1
// Fin de votre programme
Attention ! Le programme ".INPUT" utilise la variable A et demande le renseignement de la chaîne de caractères str 2 et renvoie str 1
Je me suis dit que l'on pouvais partir sur un concept de fonctions (comme dans d'autres langages C, Python,...etc) étant en fait des programmes dont le nom commencerait par un point, d'ou ".INPUT" et que l'on appèlerait dans un programme.
Je sais que le principe de sous programme existe déjà depuis l'aube de la programmation mais je vois bien plus que ça.
Voici la page du
programme.
A+ sur PC
Fichier joint
Citer : Posté le 14/12/2018 12:12 | #
https://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=3050&page=last
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 14/12/2018 13:08 | #
Ooh, donc c'est en mode graphique ? Arrives-tu à gérer le retour arrière et le fait que toutes les lettres ne font pas la même largeur ?
Citer : Posté le 14/12/2018 13:17 | #
Ben le truc c'est que je mets le tout dans une str. Le "retour en arrière "?
Pour la taille des lettres, j'avais mis la limite à 20 caracteres mais j'ai supprimé cette limite. Oui on peut sortir de la fenetre mais ça reste propre quand même
-Planétarium 2
Citer : Posté le 14/12/2018 13:19 | #
Lephe voulait dire : Comment tu fais pour gérer la touche DEL du fait que certaines lettres prennent plus de place que d'autre
Citer : Posté le 14/12/2018 13:24 | #
Un des gros trucs qui m' embêtait dans mes programmes à peu près résolu .
Merci beaucoup
Passé ici il y a peu. ಥ‿ಥ
Jouez à Mario sans arrêt sur votre Casio !
City Heroes
Piano Casio
Micro GIMP
Citer : Posté le 14/12/2018 13:24 | #
Ben la str, je retire la drrniere et clear l'ecran
-Planétarium 2
Citer : Posté le 14/12/2018 14:28 | #
Je me suis dit que l'on pouvais partir sur un concept de fonctions (comme dans d'autres langages C, Python,...etc) étant en fait des programmes dont le nom commencerait par un point, d'ou ".INPUT" et que l'on appèlerait dans un programme.
À propos de ça j'ai eu une la même idée il y a quelques temps. L'idée que j'ai eu pour passer des arguments à la "fonction" serait de stocker les arguments dans la liste Ans, exemple :
//Programme principal
{10,10,40,20}
prog "RECT"
// programme "RECT"
FLine List Ans[1], List Ans[2], List Ans[1]+List Ans[3], List Ans[2]
FLine List Ans[1], List Ans[2], List Ans[1], List Ans[2]+List Ans[4]
FLine List Ans[1]+List Ans[3], List Ans[2], List Ans[1]+List Ans[3], List Ans[2]+List Ans[4]
FLine List Ans[1], List Ans[2]+List Ans[4], List Ans[1]+List Ans[3], List Ans[2]+List Ans[4]
Du coup ça ressemble vraiment à une fonction avec des arguments.
Le problème c'est que ça prend de la place d'avoir plein de List Ans(et il faut faire attention à ce que la liste Ans ne change pas dans le sous programme mais dans la plupart des cas elle ne change pas).
Puis après, je me suis dit qu'on pouvait faire des sortes de "classes", comme dans les langages de programmation orientés objets : le concept serait d'avoir un sous programme contenant toutes les méthodes d'une classe, et les attributs seraient stockés dans une liste, puis on utiliserait les méthodes de la classe en appelant son programme après avoir modifié la liste Ans, par exemple :
{1,1,5}
prog "PLAYER"
Utiliserait la première méthode de l'instance stockée dans la liste 1 de la classe player, avec pour paramètre 5. Le premier nombre de la liste Ans étant le numéro de la liste de l'instance dont on veut utiliser une méthode, le 2ème étant le numéro de la méthode qu'on veut utilier, la première méthode serait la fonction qui crée une nouvelle instance de la classe, ici par exemple on crée donc un nouveau joueur(méthode numéro 1), stocké dans la liste 1, avec 5 vies.
Exemple complet :
//programme principal
//crée le joueur dans la liste 1 avec 5 vies
{1,1,5}
prog "PLAYER"
// utilise la méthode 2 pour lui retirer une vie
{1,2,-1}
prog "PLAYER"
// utilise la méthode 3 pour afficher son nombre de vies
{1,3}
prog "PLAYER"
// programme "PLAYER"
List Ans [1] -> A
If List Ans[2] = 1
Then
List Ans[3] -> List A[1]
Ifend
If List Ans[2] = 2
Then
List A[1] + List Ans[3] -> List A[1]
Ifend
If List Ans[2] = 3
Then
Locate 1,1, "Vies : "
Locate 8,1,List A[1]
Ifend
(Je ne sais pas si j'ai été clair, de plus, n'étant pas expert en POO, j'ai peut être mal employé certains termes).
Citer : Posté le 14/12/2018 14:58 | #
À propos de ça j'ai eu une la même idée il y a quelques temps. L'idée que j'ai eu pour passer des arguments à la "fonction" serait de stocker les arguments dans la liste Ans
C'est ce qui est fait de manière invisible lorsque l'on utilise une fonction dans un langage de programmation, on appelle ça la pile, et on y stocke les arguments pris par la fonction
Ajouté le 14/12/2018 à 14:59 :
Maintenant, est-ce que quelqu'un a une idée de génie pour implémenter les pointeurs
Citer : Posté le 14/12/2018 15:17 | #
Les pointeurs c'est des entiers, le tout c'est d'avoir une mémoire à indexer...
Citer : Posté le 14/12/2018 15:47 | #
So that. @Alexot: Zezombye devrait essayer ta méthode pour son programme.
Perso, les seuls arguments de ma "fonction" pour éditer le texte son des chaines de caractères, donc ta méthode ne s'applique carrément pas là Sinon l'idée est pas bête du tout !
-Planétarium 2
Citer : Posté le 14/12/2018 18:45 | #
Sympa, mais 2Ko il n'y aurait pas moyen de réduire ? Faire une version minimale ?
Citer : Posté le 14/12/2018 20:37 | #
C'est déjà pas gros 2k, si ?
Citer : Posté le 14/12/2018 20:42 | #
Ben le programme gère toutes les touches de la calto y compris avec shift et alpha comme tu auras pu le lire. Donc par conséquent il y à une taille minimum pour ce programme. Si ça te gêne vraiment les 2ko (ce qui, selon moi n'est pas grand chose ) je peut toujours voir ce que je peut faire..
-Planétarium 2