Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

A$=INPUT$(1)

  • 24 réponses
  • 3 participants
  • 1 762 vues
  • 2 followers
Sujet de la discussion A$=INPUT$(1)
Salut!
J'étais entrain de créer un logiciel (grand nom pour peu de choses: je suis entrain de faire un éditeur de texte :facepalm:) quand j'ai eu un problème.
Pour entrer des variables, j'utilise ce genre de mise en forme:

10 PRINT "Texte souligné? (Y/N)";
20 A$=INPUT$(1)
30 IF A$="Y" GOTO 40 ELSE GOTO 50
40 GOTO 100
50 IF A$="N" GOTO 200 ELSE GOTO 60
60 PRINT "Veuillez utiliser seulement les lettres Y ou N" : GOTO 10
100 STOP
200 STOP

Bref, ça fonctionne.
Le problème est que quand je veux enregistrer une variable de... Je sais pas, 10 caractères, il ne prend en compte que la première touche enfoncée... Ex:

Entrez votre phrase ici: S eule la lettre S a été enregistré. Ce texte en italique ne s'affiche pas.

Alors je me suis dis que si je mettais A$=INPUT$(2), il enregistrerait les deux premiers caractères... Mais non!
Alors j'ai fait ça: A$=INPUT$(1;2;3) Mais of course, ça n'a pas fonctionné !

J'ai essayé ça:
10 INPUT "Entrez votre texte"; A
20 PRINT A

Mais quand j'ai entré mon texte et que j'ai cliqué sur Enter, il m'a affiché ça:
? Redo from start
Entrez votre texte?


J'arrive pas à lui faire comprendre que tout le texte est la variable A :pleure:
Comment faire ????????
Avez-vous compris mon problème?

Aidez-moi !
2
Ok visiblement... :?!:

Alors, une autre question pour débloquer: Comment est-ce que vous vous y prenez pour créer des variables?
3
Il faut ajouter $ à ta variable pour préciser que c'est de l'alphanumérique.

10 INPUT "Entrez votre texte" ; A$

[ Dernière édition du message le 13/06/2016 à 08:40:30 ]

4
Merci pgreslin!
J'aurais voulu l'essayer mais ma sortie vidéo fait des caprices, ce qui fait que j'essayerais ça dès que la prise sera réparée!

5
Merci!
Ça fonctionne!
Autre question :
Comment demander au CX5MII de compter le nombre de caractères d'une variable?
Par exemple, dans une variable ´text' où il y a 6 lettres, qu'il sache qu'il y a 6 caractères....

Merci d'avance!

D-B.
6
J'ai trouvé quelque chose qui semble être ce que je recherche:
LEN (chaîne)

Je voudrais attribuer à une variable C$ la longueur de chaîne...

3120 LET C$= LEN (Text1$)

Mais il m'affiche
Type mismatch in 3120...

Est-ce que quelqu'un aurait un peu de temps pour m'expliquer comment faire?

Merci!
7
LEN renvoi un nombre, pas une chaine alpha numérique. Donc il faut enlever le $ au nom de ta variable C, ça devrait aller ..

[ Dernière édition du message le 26/06/2016 à 12:03:27 ]

8
Merci!
Ça marche!
9

Une doc trouvé sur le net :
http://map.grauw.nl/resources/system/msxtech.pdf
(La partie software commence page 45)
10
Merci encore Soundgeek!

Pourrais tu m'expliquer (toujours si tu as du temps) comment utiliser la fonction STEP?
J'essaie de faire une courbe sinusoïdale...
11
Dans une boucle FOR, c'est un paramètre optionnel qui indique de combien est incrémenté la variable de la boucle à chaque passage.
12
Hmm...

Comment ferais-tu pour coder un prog. qui ferait ce type de courbe?
Le mien me donne un trait droit:

10 Screen 2
20 x=1 : y=sin(x)
30 x=x+1 : y=sin(x)
40 pset (x,y)
50 Goto 30

Ça me donne ça:

----------------------------------



[ Dernière édition du message le 26/06/2016 à 19:05:21 ]

13
sin(x) ça renvoi une valeur entre 0 et 1 ...

[ Dernière édition du message le 26/06/2016 à 19:26:14 ]

14
Effectivement! J'y avais pas pensé!

J'ai lu un article sur les instructions LOCATE X,Y et ça m'a inspiré.
J'ai voulu faire un petit jeu calqué de Space Invaders et de Missile Command.
Voici le début de mon code:
https://app.box.com/s/evf7fzt4tcsgn5jjc68rr5viok3hy9ro
J'ai un gros problème:
La première partie du code (Jusqu'à la ligne 310) concerne le petit vaisseau qu'on peut déplacer avec les flèches X et Z.
(C'est la variable A$: -=O=- )
La deuxième partie (De 320 à la fin) concerne l'ennemi qui se déplace de gauche à droite au sol (qui ne tire toujours pas de missiles, c'est la variable B$: ).

Voici mon problème: Quand je lance mon code, il tourne en boucle sur la première partie.
Il n'atteint pas la ligne 320 car il y a un GOTO ligne 240.

Question: Comment lancer les deux animations à la fois? (Je ne voudrais pas t'embêter mais là, j'y arrive pas :( )
Je suis sûr qu'il ne fallait pas le coder de la sorte, d'où le problème de boucle.

Merci d'avance!
15
Essai de tout faire dans la meme boucle....

[ Dernière édition du message le 27/06/2016 à 17:24:37 ]

16
C'est vachement dur :(
17
Hey!
Eh bien j'ai enfin quasiment fini un truc chouette qui s'appelle "The Chess-Runner" :tourne:
Je vais poster une vidéo ici (dans peu de temps) pour te montrer ce que ça donne, et merci pour tes astuces sur les alphanumériques.
Je me suis finalement tourné vers les fonctions SCREEN 2 et DRAW A$ :D:
Ca permet de faire des trucs tous colorés avec des formes personnelles :)
Je suis resté sur l'idée que mon programme doit faire un bloc, et ça marche vachement mieux, merci :D

Si quelqu'un passant par là aurait les ASCII des flèches directionnelles, ça m'arrangerait car j'utilise que ZSQD...
Je pense pas que ce soit du type Windows récent, genre:

Citation :
gauche: 224 75
haut: 224 72
droite: 224 77
bas: 224 80


Mais bon, merci :D
18
19
Top ! :bravo:
20
Merci ça me touche :D: 1894764.gif
21
Re Soundgeek,
Je voulais savoir un truc que je ne trouve nul part:
Quand j'utilise certains programmes genre MIDI Recorder, on peut utiliser les flèches directionnelles pour commander la souris. Le truc c'est que l'affichage de la souris était fluide, et non saccadé comme ce que j'arrive à faire avec ça:

1 SCREEN 2 : x=10 : Y=20 : A$="D10 R10 U10 L10"
2 FOR I=1 to 15
3 PSET (X,Y) : DRAW A$
4 LET Z1=X : LET Z2=Y
5 LET X=X+1 : LET Y=Y+1
6 GOSUB 10
7 NEXT I
8 LINE (Z1;Z2)-(Z1+10;Z2+10),4,BF

Avec ça, mon petit objet A$ s'affiche, s'efface, se déplace (Sans qu'on le voit), s'affiche, s'efface, se déplace...

Ca me rend un truc saccadé, et puisque je vois que les autres programmes peuvent faire des mouvements fluides, j'aimerais en faire de même.

Est-ce que tu connaitrais une commande telle que cela soit possible?
J'en ai repéré aucune, ça me désespère un peu...

Merci d'avance même si tu ne le sais pas forcément :)
22
Le langage basic est "interprété", c'est a dire qu'il y a un programme qui va "lire" le texte, et le transformer en code machine avant que ce dernier puisse être exécuté par le processeur. Cela prend pas mal de temps.

Pour aller plus vite, on peut par exemple programmer avec du langage assembleur qui va générer du code machine.
Mais c'est beaucoup plus technique ...
Et pas toujours accessible pour l'utilisateur.

Sinon il y a parfois la possibilité d'appeler une fonction depuis le basic via un appel à une adresse mémoire bien précise.

Un éléments graphiques qui se déplace, on appel ça un "sprite".

[ Dernière édition du message le 13/05/2017 à 00:15:59 ]

23
Ow d'accord... je vais voir ces sprites...
Tandis que pour l'assembleur, je me demande où est ce que je vais trouver un manuel pour un viel ordi (je suppose que ca a évolué entre temps :D )
24
C'est bon, j'ai compris les logiques et les syntaxes des sprites, mais je ne comprends pas en fait le language utilisé lors des définitions des sprites: genre SPRITE$ (1) = "U5" me fait afficher une ligne de pixels off/on
J'ai cherché, mais ça ne ressemble apparemment en rien avec le Macro Basic Language ou je sais plus trop quoi...

Est-ce que tu connais ce langage?
25
On peut faire pas mal de jeux en mode texte, peut être une meilleur idée d'approfondir encore un peu le basic...

Après il faudrait regarder si il y a un mode graphique basse résolution.
Pour faire des jeux avec des blocs..

Puis en suite en haute résolution ...

[ Dernière édition du message le 13/05/2017 à 17:07:42 ]