# Projet de synthèse en SI ## Robi --- ## Index 1. [Auteur](#auteur) 2. [Projet Initial](#projet-initial) 3. [Projet effectué](#projet-effectué) 4. [Bilan](#bilan) 5. [À faire](#à-faire) 6. [Script](#script) --- ## Auteur: * GRANDMONTAGNE Julien * Héron-Ouvrard Samuel * TOUZE Quentin * THOMAS Antoine --- ## Projet Initial * #### Première partie: L'objectif de cette première partie du projet est de développer un langage de script pour des animations graphiques simples. * #### Seconde partie: L'objectif de cette seconde partie du projet est de pouvoir saisir des s-expressions sur une machine et que la commande s'exécute sur une autre. --- ## Projet effectué Explications des différentes étapes de conceptions ainsi que de leur avancement : * [ ] **Exercice 1** Prise en main de la couche graphique ![](Exercice1_screen.png) Dans un premier temps, un carré fait le tour de la fenêtre dans laquelle il est placé et change de couleur à chaque passage en 0,0. **\+ Bonus:** Le carré possède une animation de déplacement et pas seulement une "téléportation" aux 4 coins de la fenêtre. --- --- * [ ]**Exercice 2** Première version d'un interpréteur de script * 2.1 Script de configuration Exécution de deux S-expressions de configuration de la fenêtre et du robi ``` (space color black) (robi color yellow) ``` ![Résultat de l'execution ](Exercice2_1_screen.png "Résultat de l'execution Exercice 2.1") * 2.2 Script d’animation L'interpréteur est maintenant capable de comprendre certaines s-expressions simples de déplacement et de changement de couleur. ![](Exercice2_2_screen.png "Résultat de l'execution Exercice 2.2") execution de ce script: ``` (space color white) (robi color red) (robi translate 10 0) (space sleep 100) (robi translate 0 10) (space sleep 100) (robi translate -10 0) (space sleep 100) (robi translate 0 -10) ``` **\+ Bonus:** Le carré possède une animation de déplacement et pas seulement une "téléportation" aux différentes coordonnées demandées. --- --- * [ ]**Exercice 3:** Amélioration de l'exercice 2 afin de permettre une future évolution. --- --- * [ ]**Exercice 4:** Sélection et exécution des commandes * 4.1 Référencement des objets et enregistrement des commandes Nous ajoutons ainsi l'entrée des s-expressions manuel par l'utilisateur à l'aide de l'invite de commande. execution de ce script: ``` (space setColor black) (robi setColor yellow) (space sleep 2000) (space setColor white) (space sleep 1000) (robi setColor red) (space sleep 1000) (robi translate 100 0) (space sleep 1000) (robi translate 0 50) (space sleep 1000) (robi translate -100 0) (space sleep 1000) (robi translate 0 -40) ``` * 4.2 Ajout et suppression dynamique d’éléments graphiques Jusqu'à maintenant, l'environnement est fixe et possède 1 carré nommé Robi. Maintenant, nous ajoutons la possibilité d'ajouter des éléments dynamiquement à la fenêtre et à tout objet compris dans la fenêtre. ![](Exercice4_2_screen.png) execution de ce script: ``` (space add robi (Rect new)) (robi translate 130 50) (robi setColor yellow) (space add momo (Oval new)) (momo setColor red) (momo translate 80 80) (space add pif (Image new alien.gif)) (pif translate 100 0) (space add hello (Label new "Hello world")) (hello translate 10 10) (hello setColor black) ``` --- * [ ]**Exercice 5:** --- * [ ]**Exercice 6:** --- * [ ]**Client/Serveur:** --- ## Bilan --- ## À faire --- 11.Serveur ## Script