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 - Projets de programmation


Index du Forum » Projets de programmation » Remplacer le mythique point d'interrogation
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

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


Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 14/12/2018 12:12 | #


https://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=3050&page=last
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir En ligne Administrateur Points: 24700 Défis: 170 Message

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 ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

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
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

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
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Captainluigi Hors ligne Membre Points: 816 Défis: 1 Message

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
Les bons artistes copient, les grands artistes volent. Picasso

Passé ici il y a peu. ಥ‿ಥ

Chaîne youtube
Cliquez pour recouvrir

Vieux projets et jeux sur Casio
Cliquez pour recouvrir
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 14/12/2018 13:24 | #


Ben la str, je retire la drrniere et clear l'ecran
Alexot Hors ligne Membre Points: 539 Défis: 18 Message

Citer : Posté le 14/12/2018 14:28 | #


Disperseur a écrit :
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).
Cliquez pour découvrir
Cliquez pour recouvrir
2b 5b 2d 2d 2d 2d 2d 3e 2b 2b 2b 3c 5d 3e 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 2e 2d 2d 2d 2d 2e 2b 2b 2b 2e 2b 5b 2d 2d 3e 2b 3c 5d 3e 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2e 2b 5b 2d 2d 3e 2b 2b 2b 2b 2b 3c 5d 3e 2b 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2b 2b 2b 2b 2b 2b 2e 2d 2e 2b 2e 2d 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 3c 5d 3e 2e 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 3c 5d 3e 2d 2e 2d 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2d 2e 2b 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 3c 5d 3e 2d 2d 2e 2b 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 2b 2b 3c 5d 3e 2d 2e 3e 2b 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2b 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e
Hackcell En ligne Maître du Puzzle Points: 1533 Défis: 11 Message

Citer : Posté le 14/12/2018 14:58 | #


Alexot a écrit :
À 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
Lephenixnoir En ligne Administrateur Points: 24700 Défis: 170 Message

Citer : Posté le 14/12/2018 15:17 | #


Les pointeurs c'est des entiers, le tout c'est d'avoir une mémoire à indexer...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

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 !
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 14/12/2018 18:45 | #


Sympa, mais 2Ko il n'y aurait pas moyen de réduire ? Faire une version minimale ?
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24700 Défis: 170 Message

Citer : Posté le 14/12/2018 20:37 | #


C'est déjà pas gros 2k, si ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

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..

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 66 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