TdA4

Approche de la Programmation et de la Conception Orientée Objet

 

1.     Objectif

L'objectif de ce Td est de compléter l'application Turtle.

Dans la première version que vous avez à faire, on vous demande de réaliser la classe manquante "Turtle". Comme le montre la spécification une tortue doit être capable comme dans l'environnement "logo" de pouvoir se déplacer en avant (avancer), en arrière (reculer), de s'orienter vers la gauche (gauche) et vers la droite (droite). Elle doit pouvoir aussi activer (baisser) ou inhiber (lever) son mécanisme de tracé qui, suivant le cas, marque ou non son déplacement. On considère que le point origine de l’espace où l’on voit la tortue est situé au centre ce qui permet le dimensionnement simple de la fenêtre et que le cap 0 est situé à l’Est.

Procéder à une amélioration en produisant la seconde version de la classe "Turtle" afin que la tortue dispose d'un repère lui permettant de se situer dans l'espace. Elle sera dotée de 2 fonctionnalités supplémentaires qui lui permettront respectivement de se placer à un point précis de l'espace (allerA) et de s'orienter dans une direction précise (tournerVers).

La troisième version de la classe Turtle que vous avez à réaliser a pour but de clore l'espace où évolue la tortue comme dans une pièce. La tortue ne pourra pas en sortir et viendra buter contre le mur si on essaie de lui faire atteindre un point en dehors de cet espace. Modifier avec discernement et pertinence ce qui doit l'être dans la classe "Turtle" de façon à ce que l'application respecte cette contrainte. On admettra que la fenêtre ne peut pas être redimensionner.

L'ensemble des classes fournies permet de réaliser l'interface utilisateur comme le montre l'exemple ci-dessous :

Schéma 1 : Interface utilisateur

2.     Spécifications

Les spécifications de l'application à écrire sont les mêmes que celle vue en Td, auxquelles nous ajoutons les caractéristiques énoncées dans le paragraphe précédent.

3.     Informations disponibles

1.      Structure générale de l'application

Les classes proposées sont "TurtleArea" qui assure le tracé sur l'écran de la tortue et de ses déplacements éventuels, TestTurtle qui est le programme principal offrant l'interface utilisateur, TurtleImage qui donne une représentation graphique à la tortue et RotateFilter qui assure la manipulation de l’image.

2.      Les classes et interfaces

La hiérarchie de classes,

Les éléments dont vous avez besoin

Les fichiers jars jus.util.jar, jus.util.geometrie.jar et jus.util.assertion.jar sont accessibles sur le serveur dans la rubrique DIVERS.