CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[QML/C++] Interpret LOGO

PantherPower
PantherPower
Niveau 8
20 mai 2016 à 23:16:47

Bonjour à tous ! :play:

J'ai un projet à rendre pour dans peu de temps, donc je m'y mets à fond à partir de ce soir.

Le projet consiste à interpréter le langage LOGO en C++. le Langage LOGO est "basique", je me contenterais juste de traduire les fonctions "avancer", "reculer", "droite", "gauche".
En gros le LOGO c'est ça : Une tortue laisse une trace de son déplacement, on peut donc dessiner plusieurs formes géométriques en contrôlant ses déplacements.

Si je lui dis : avancer 50, droite 90, avancer 50, droite 90, avancer 50, droite 90, avancer 50. La tortue me dessinera un carré de longueur 50.

J'ai donc mes différentes fenêtres qui correspondent à la fenêtre "Canvas", qui contiendra la tortue et nous permettra de visualiser les déplacement et les traces de celle-ci, et la fenêtre "Texte", qui nous permettra d'entrer les commandes LOGO qui seront ensuite interprétée en C++. Ces objets ont été crées en QML et je les manipule ensuite en C++ a l'aide des Qapplication et des QQuickView.

Mon problème est que je ne sais pas comment je ferais lorsque j'aurais interprété mes fonctions LOGO en C++ pour faire en sorte que les fonctions entrées agissent sur la fenêtre Canvas :(

Si quelqu'un s'y connait et pourrait me guider ce serait cool ! Le QML est tout nouveau pour moi donc je ne connais pas bien la doc etc...

PantherPower
PantherPower
Niveau 8
21 mai 2016 à 18:17:45

Personne calé en QML/C++ ?

Si ya besoin de plus d'info dites le moi, je veux juste pas rentrer vraiment dans le détail si personne est chaud de m'aider :hap:

Je pourrais fournir des photos de code etc si besoin. J'ai pas mal avancé hier soir, j'ai désormais mes fonctions principales avancer, reculée, poserStylo et levéStylo. J'arrive à envoyer des signaux entre le C++ et le QML donc je peux bouger l'image qui me sert de tortue et réaliser les tracer etc

Je dois maintenant faire le parseur qui s'occuper d'analyser le texte rentré en LOGO et ensuite d'envoyer les bon signaux en fonction de ce qu'il a lu, pour pouvoir appeler les fonctions correspondantes que j'ai décrites plus haut :ok:

[denshaotoko]
[denshaotoko]
Niveau 25
21 mai 2016 à 18:33:08

Mon problème est que je ne sais pas comment je ferais lorsque j'aurais interprété mes fonctions LOGO en C++ pour faire en sorte que les fonctions entrées agissent sur la fenêtre Canvas :(

quel est le problème maintenant du coup puisque :

J'arrive à envoyer des signaux entre le C++ et le QML donc je peux bouger l'image qui me sert de tortue et réaliser les tracer etc

sinon pour ça :

Je dois maintenant faire le parseur qui s'occuper d'analyser le texte rentré en LOGO et ensuite d'envoyer les bon signaux en fonction de ce qu'il a lu, pour pouvoir appeler les fonctions correspondantes que j'ai décrites plus haut :ok:

pour un interpréteur les gens utilisent lex&yacc, mais là je pense que pour du LOGO tu peux te débrouiller juste avec de la comparaison basique de string, mais bon après si tu veux pas que ce soit chiant pour l'utilisateur s'il met un espace en trop avant l'instruction, ou après etc etc, vaut mieux passer par std::regex pour que ce soit plus souple

ah, et pour avoir une sorte d'historique comme dans un shell interactif genre bash, où quand tu appuyes sur fleche du haut tu as la commande entrée précedemment, l'autocomplétion, etc etc, tu as gnu readline ou boost realdine pour facilité ce genre de truc

Message édité le 21 mai 2016 à 18:37:27 par [denshaotoko]
PantherPower
PantherPower
Niveau 8
21 mai 2016 à 19:55:26

Oui désolé j'ai oublié de préciser mes nouveaux problemes du coup :rouge:

Mais hier soir je me suis couché en ayant réussis ce que je voulais faire, du coup pour ce que je compte faire je vais sûrement rencontrer des problemes et c'est à ce moment que votre aide me sera précieuse :ange:

Je m'y remet tout à l'heure et je posterais mes avancées ! Mais j'ai quand même des petits problème pour faire bouger la tortue comme je le souhaite, en fait j'arrive à tracer ce que je veux (à peu près ce que je veux, pour l'instant ca se résume à des lignes/carré), mais la tortue bouge de manière aléatoire.

Dans ma fonction avancer par exemple je modifie ses coordonnées mais des fois elle reste statique. J'ai pas virement eu le temps de me pencher sur le problème donc je vais regarder ca ce soir, si je trouve pas de solution je posterais le code :ok:

Merci pour les conseils supplémentaires en tout cas c'est top ! Je vais regarder tout ça :ok:

PantherPower
PantherPower
Niveau 8
21 mai 2016 à 20:02:06

La tortue se trouve dans un canvas.qml en fait, c'est juste une image. Mais ce Canvas est déjà contenu dans un rectangle pour faire la fenêtre. Ce sera plus claire avec les photos du code que j'enverrais tout à l'heure :ok:

Mais quand je compile il y a eu erreur qui n'empêche pas l'exécution du programme, mais je crois bien qu'elle est liée au fait que j'imbrique plusieurs objets qml dans un même objet et je crois qu'il aime pas trop :(

Pseudo supprimé
Pseudo supprimé 22 mai 2016 à 10:22:57

Envoie les captures et l'erreur d'exécution :oui:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment