Programmer "SUR" Amstrad CPC

Page 3 sur 3 Précédent  1, 2, 3

Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Jeu 14 Déc 2017 - 11:02

@Green Beret :
Merci pour les scans ! Mais entre temps j'ai trouvé un gars qui me fiat le manuel du 6128 pour 5 €, du coup c'est plus approprié pour moi que le 464. J'ai cru un moment que tu me parlait aussi d'un autre livre en plus sur le Locomotive Basic, mais j'ai compris que tu parlais du même. Sinon j'aurais été intéressé par un livre sur le Basic. Merci encore pour ta proposition, c'est vraiment gentil.

tetsuro
Patient contaminé

Nombre de messages : 445
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Dim 17 Déc 2017 - 14:17

Salut les potes, je suis toujours sur mon apprentissage du Basic et je m’intéresse doucement aux bases de l'assembleur alors j'ai écris un petit programme de "Quizz" de conversion de chiffres Dec / Hex / Bin, pour m'aider à mieux assimiler.
Mon programme marche plutôt bien en soit car il génère un nombre aléatoire, il demande à entrer l'équivalent en binaire, le compare et dit si c'est bon ou pas.
Mais il y a un problème qui vient du fait que par défaut pour un nombre binaire l'Amstrad "retire" les "0 (zéros)" inutiles avant les "1". Donc pour comparer l'ordi attend les 8 chiffres "00000111"
Un exemple avec les captures ci-dessous, on voit que mes valeurs entrées sont bonnes mais qu'il met "Bad" car il y a 7 chiffres et non 8, car il débute par 0, "69 = 01000101".
Par contre si par chance le nombre à les 8 chiffres qui commence par 1 cela fonctionne "149 = 10010101"
J'ai cherché dans le manuel, un peu partout sur internet, mais je n'ai pas trouvé de solution...



Dernière édition par tetsuro le Dim 17 Déc 2017 - 14:42, édité 1 fois
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Monos le Dim 17 Déc 2017 - 14:41

Une idéeo comme ça, transforme tes chaines en valeur numérique et compare les.

Tu as une fonction pour cela . (je ne sais plus c'est quoi vraiment peut être val().
La c'est que des chaîne de caractère si je ne me trompe pas.
avatar
Monos
Patient contaminé

Masculin Nombre de messages : 185
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Dim 17 Déc 2017 - 14:48

Oui c'est vrais, tu as raison, je compare des chaines de caractères, d'où le problème de taille de la chaine, je vais faire ma recherche sur VAL(), j'étais tombé dessus mais je ne m'y suis pas attardé, j'ai pris la solution des $ car je n'arrive pas à faire passer un binaire sur un INPUT.
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Urbinou le Dim 17 Déc 2017 - 15:50

Ou tu fais (je te laisse traduire)

Right("00000000"+tachaine binaire,8)

_______________________________________________________
Mon Advisor  -  Mon topic "échanges"  -  Vente : il me reste quelques cartouches atari 2600 !
Dans le cambouis du vcs Atari : mon modeste blog
avatar
Urbinou
Docteur Modérateur *
Docteur Modérateur *

Masculin Nombre de messages : 5655
Age : 49
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Lun 18 Déc 2017 - 1:46

Code:

10 dec=3
20 INPUT s$
30 IF s$ = BIN$(dec) THEN PRINT "Good :)"
40 IF s$ <> BIN$(dec) THEN PRINT "Bad :("


Un bon exemple, quand je tape ce programme

J'aimerais pouvoir entrer avec le input le binaire (de la décimale 3) en entier comme ceci : 00000011, hors dans ce cas le programmer attends que je rentre 11 en ignorant les 000000.
- SI je tape 00000011, il me dit BAD, alors que c'est bon en soit
- Si je met 11 il me dit GOOD, c'est bon en soit, mais j'aimerais entrer les 8 bits car j'ai une idée de programme pédagogique.

@Monos :
J'ai fait des recherches sur VAL() et j'ai un peu manipulé, il permet d'extraire une valeur numérique dans une chaine de caractères qui débute par des chiffres, c'est cool mais ça ne règle pas mon problème car il reçoit la suite de bits 10000001 comme étant le nombre décimal 10.000.001, et je ne peux pas les comparer sinon j'ai un "Type mismatch"...
La solution du programmer juste au dessus fpnctionne mais j'ai le problème des 000000 ignorés...

@Urbinou :
Merci, mais désolé je n'ai pas compris ton exemple :)
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Monos le Lun 18 Déc 2017 - 4:59

Bon, tu vas devoir faire une sous routine pour éliminter les 0 au début de ta chaine. Cela passe par un string parser

-Il te faut manipuler les gosub
-Il te faut une variable intermédiaire.
-Utiliser la fonction lde hachage. Left$,Mid$,Right$
-Utiliser les fonction de boucle et de condition

tu regardes la première lettre de ta chaine, si c'est 0, alors tu dois la virer de ta chaine et tu repasses dans ta boucle pour tester "la 2em lettre" qui qui reste la premier lettre"
Si ce n'est pas 0 c'est que c'est bon !
Tu peux comparer au départ que tu as bien 8 lettres dans ta variable avec la fonction len$() qui renvois le nombre de "lettre" d'une chaine.
avatar
Monos
Patient contaminé

Masculin Nombre de messages : 185
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Monos le Lun 18 Déc 2017 - 5:15

J'ai mieux.

10 dec=3
20 b$="00000000"+bin$(dec)
30 b$=right$(b$,8)
35 input a$
40 if a$=b$ then print "ok"
50 if as<>b$ then print "pas ok"
60 goto 10

je prend mon problème à l'envers, j'ajoute des 0 à gogo à dec, et avec right$(variable,nombre de lettre) je vais rechercher mes 8 lettres assurés. maintenant je peux comparer le bignouffe

avatar
Monos
Patient contaminé

Masculin Nombre de messages : 185
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Tryphon le Lun 18 Déc 2017 - 7:08

C'était la solution d'Urbinou.
avatar
Tryphon
Interne
Interne

Masculin Nombre de messages : 8523
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Monos le Lun 18 Déc 2017 - 7:20

Ah oui, xd j'ai loupé le message xd
avatar
Monos
Patient contaminé

Masculin Nombre de messages : 185
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Lun 18 Déc 2017 - 9:31

@Monos :
Merci pour tes explications, et heureusement car de toutes façons je n'avais pas le niveau pour comprendre l'explication abrégée de Urbinou Embarassed . Mais là j'ai testé ton code et ça fonctionne, c'est cool merci. smile
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Sam 23 Déc 2017 - 1:32

Bon, je commence un petit "Space Invaders" et j'ai deux petites questions.
Je voudrais avoir un sprite en mode 1 de 16*16. Et je me demande quelle est la meilleure méthode selon vous, si il y en a une, car j'ai pas l'impression que faire le code suivant ne soit très optimisé :
Code:
LOCATE x,y
PRINT chr$(32)+chr$(143)+chr$(143)+chr$(32)
LOCATE x2,y2
chr$(32)+chr$(143)+chr$(143)+chr$(32)

Et l'autre question se porte sur l'instruction FRAME. Elle marche plutot pas mal sur un mouvement automatique, mais sur un mouvement avec les flèches directionnelles ça saccade...Dans le manuel ils en parlent, mais dans un contexte de déplacement avec les flèches c'est très saccadé, je n'ai peut-être pas compris quelque chose :
(Code du manuel "Chapitre 1 - page 57)
Code:
70 FOR n=1 TO 300:NEXT n
80 FOR x=39 TO 1 STEP -1
90 LOCATE x,20
100 FRAME
110 PRINT CHRf(251);" "
120 NEXT x
130 FOR n=1 TO 300:NEXT n
140 GOTO 20
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Sam 23 Déc 2017 - 11:11

Bon voilà une tentative de code lol,

- Je fais défiler des étoiles aléatoires (que j'aimerais être un arrière plan permanent)
- J'essaie d'afficher un vaisseau (mais il se fait emporter par le scrolling et surtout ça saccade à mort !)
Je ne sais pas encore comment dissocier l'affichage et le mouvement du vaisseau du scrolling.

Le code (faut vraiment que j'investisse dans un Gotek pour partager le code smile) :



Une magnifique vidéo :

avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par drfloyd le Sam 23 Déc 2017 - 12:58

en pur basic tu va galerer à mort pour faire un jeu avec un scrolling  Mr. Green

C'est trop limité en affichage et trop lent pour arriver a faire quelque chose de potable... meme si c'est l'un des basic 8bit le splus rapides qui existait.

_______________________________________________________

Mes objets en vente :
http://www.gamopat-forum.com/t98267-la-caverne-du-doc-poilu#2765310
Mon profil Gamopat Advisor :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor





avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 134962
Age : 48
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Tryphon le Sam 23 Déc 2017 - 13:37

Ce genre de scrolling (dans le sens du défilement du texte) est jouable en Basic, car il est implémenté dans l'interpréteur. Même en Thomson, c'était faisable.
avatar
Tryphon
Interne
Interne

Masculin Nombre de messages : 8523
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par F.L le Sam 23 Déc 2017 - 13:50

c'est pas mal du tout !
mes souvenirs de 1987 ne sont plus tres bon, mais je crois me rapeller quil 'y avait une fonction (frame?) qui faisait comme un double buffer et evitait les clignotements et meme peut etre la disparition de ton vaisseau. ça ralentissait un peu la boucle par contre  
as tu le bouquin amstrad du locomotive basic ? tout y est dedans, meme aussi pour creer ses chr$ perso. il etait génial ce basic !
en tout cas, belle démarche. programmer direct sur un vieux micro c'est vivre à fond le concept du retro-programming !
avatar
F.L
Docteur *
Docteur *

Masculin Nombre de messages : 2793
Age : 42
Localisation : hérault
Date d'inscription : 11/06/2012

http://fl.basic.free.fr

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par 65c02 le Sam 23 Déc 2017 - 18:47

@drfloyd a écrit:en pur basic tu va galerer à mort pour faire un jeu avec un scrolling  Mr. Green

C'est trop limité en affichage et trop lent pour arriver a faire quelque chose de potable... meme si c'est l'un des basic 8bit le splus rapides qui existait.
ahahah 
https://cpcrulez.fr/coding_src-list-graphic-crtc-on-screen_effects_on_the_CPC464_POPU.htm
avatar
65c02
Patient incurable

Masculin Nombre de messages : 1880
Age : 47
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par kawickboy le Mar 26 Déc 2017 - 14:59

Vous avez JADE qui permet de créer des jeux d'aventure largement au niveau des 1ers jeux graphiques:

http://www.cpc-power.com/index.php?page=detail&num=4053

A100% avait publié qques articles dessus et même fait un concours des meilleurs jeux créés avec.
avatar
kawickboy
Interne
Interne

Masculin Nombre de messages : 5086
Age : 40
Localisation : Paris / Eu - Le Tréport
Date d'inscription : 30/03/2008

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Lun 1 Jan 2018 - 18:26

Bonne année à tous !

Je commence 2018 avec un petit problème bizarre avec les WINDOW et les tableaux.
Je créer une WINDOW#1 de 8x8 dans laquelle j'affiche un tableau de 8x8. Je LOCATE le tableau à 1,1 de la WINDOW#1, normalement la tableau doit s'afficher pile en haut à gauche de la fenêtre, mais ce n'est pas le cas, le tableau se décale de 1 sur la droite.
Si je test avec un PRINT#1,"12345678", ça s'affiche impec à 1,1.
Connaissez-vous ce petit souci ?

@kawickboy :
Merci pour l'info, super je ne connaissais pas, je testerais bien quand j'aurais un Gotek :) !
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par 65c02 le Mar 2 Jan 2018 - 7:00

@tetsuro a écrit:Bonne année à tous !

Je commence 2018 avec un petit problème bizarre avec les WINDOW et les tableaux.
Je créer une WINDOW#1 de 8x8 dans laquelle j'affiche un tableau de 8x8. Je LOCATE le tableau à 1,1 de la WINDOW#1, normalement la tableau doit s'afficher pile en haut à gauche de la fenêtre, mais ce n'est pas le cas, le tableau se décale de 1 sur la droite.
Si je test avec un PRINT#1,"12345678", ça s'affiche impec à 1,1.
Connaissez-vous ce petit souci ?
As tu ajouter le #1 a ton locate ?
Si oui, vérifie que ta window est assez large pour le texte que tu lui envois.
Si tu penses que c'est bon, augmente la largeur de 1 pour voir.
Il me semble que le retour à la ligne automatique du print nique le positionnement en x quand on est dans une fenêtre (de mémoire, a vérifier).
avatar
65c02
Patient incurable

Masculin Nombre de messages : 1880
Age : 47
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Mar 2 Jan 2018 - 12:06

Oui je n'oublie aucun # je pense, la WINDOW est assez large oui.
J'ai naturellement augmenté la largueur de la WINDOW, et pour afficher un tableau de 8 je dois ajouter 1 à gauche et 1 à droite, je n'ai pas ce problème en y. Je peux trouver des solutions "système D" c'est pas le soucis, mais j'essaie de comprendre le problème pour apprendre smile.
J'ai pensé à TAG pour placer le texte en coordonnées graphiques, je sais qu'on peut faire un TAG#1 mais un MOVE #1,1,1 ne fonctionne pas ...
J'ai pris des photos :

Premier code, une WINDOW de 8 et un PRINT de 8, tout rentre impec :



Deuxième code, le même code mais je créer un tableau de 8, j'affiche le tableau de 8 et voilà le problème :

avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par 65c02 le Mar 2 Jan 2018 - 13:11

ah ok. rien a voir avec la window.
dans ton code t(0) est une valeur et lorsque tu affiche une valeur avec un print, le basic ajoute toujours un espace devant.
essai ça et tu verras le meme effet
10 a=12
20 print a
avatar
65c02
Patient incurable

Masculin Nombre de messages : 1880
Age : 47
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Mar 2 Jan 2018 - 14:32

Et comment faire pour ne pas avoir cet espace ?
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Tryphon le Mar 2 Jan 2018 - 14:53

Cette espace (c'est féminin dans ce cas), c'est certainement la position du signe : si tu affiches un nombre négatif, il y aura un - à la place de l'espace.

Peut-être que tu peux t'en sortir avec PRINT USING, sinon tu peux convertir ton entier en chaîne (STR$) puis faire un RIGHT$ après avoir testé que la valeur initiale était bien positive.
avatar
Tryphon
Interne
Interne

Masculin Nombre de messages : 8523
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par tetsuro le Mar 2 Jan 2018 - 16:01

J'aimerais afficher un tableau, mais quand j'écris la méthode suivante les chiffres "scrollent" lol, alors que si j'affiche un caractère au lieu d'une case du tableau la suite s'affiche sans s’effacer. (D’ailleurs j'ai testé cette méthode de tableau pour faire scroller un personnage sur l'écran, sans avoir à afficher les espace " " dans PRINT pour les 4 directions Haut Bas Gauche Droite)

Une photo :



@Tryphon :
Merci pour ta réponse, je vais l'étudier car ça fait appel à pas mal de choses que je ne maitrise pas bien encore smile
avatar
tetsuro
Patient contaminé

Masculin Nombre de messages : 445
Age : 41
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par jimpqfly le Mar 2 Jan 2018 - 17:00

@Tryphon a écrit:Cette espace (c'est féminin dans ce cas)

Tryphon, mon monde s'écroule... !
avatar
jimpqfly
Infirmier

Masculin Nombre de messages : 3961
Age : 40
Localisation : Paris
Date d'inscription : 16/04/2012

http://www.gloub.com

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Tryphon le Mar 2 Jan 2018 - 17:16

Ça m'a fait pareil Very Happy
avatar
Tryphon
Interne
Interne

Masculin Nombre de messages : 8523
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par 65c02 le Mar 2 Jan 2018 - 19:36

@tetsuro a écrit:Et comment faire pour ne pas avoir cet espace ?
si tes valeurs vont de 0 à 9, tu peux faire print chr$(48+l(i))
car
la fonction chr$(n) affiche le caractere numéro n
le caractères 48 est le zéro
le caractère 49 est le 1 etc...
avatar
65c02
Patient incurable

Masculin Nombre de messages : 1880
Age : 47
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par nemokantio le Mar 2 Jan 2018 - 20:36

Pour virer l'espace avant le chiffre, la méthode de 65c02 fonctionnera, ainsi que la méthode de Tryphon (print using"#";variable).
Bien vu.

nemokantio
Patient contaminé

Masculin Nombre de messages : 298
Age : 42
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

Re: Programmer "SUR" Amstrad CPC

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 3 sur 3 Précédent  1, 2, 3

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum