M2202 - TP Séance 3

Durée : 2h00




Objectifs




Au menu

  1. Consignes
  2. Fonctions utiles lors de ce TP
  3. Chargement du fichier
  4. Affichage de l'animation
  5. Fonctions avancées d'affichage




A. Consignes (5 min) 0%

Remarquez que la hauteur de chaque image en lignes est donnée sur la première ligne du fichier, et que la source de l'animation est donnée sur la deuxième ligne. Une seconde séance permettra de continuer ce TP, ou de prolonger l'exercice.

Lisez attentivement cet énoncé de TP en suivant les instructions. En cas d'interrogation, faites appel à moi, que ce soit pour en savoir plus sur un des points abordés pendant le TP, ou pour savoir comment effectuer une des tâches demandées (numérotées pour pouvoir y faire référence simplement).

Surtout ne restez pas bloqué(e) sur une des questions. Entre parenthèses, à côté des titres de sous-sections, est indiqué le temps que vous avez dû passer à effectuer les étapes précédentes.




B. Fonctions utiles lors de ce TP (10 min) 4%




C. Chargement du fichier (30 min) 12%

Nous allons tout d'abord récupérer les paramètres transmis au programme, car l'adresse du fichier à charger sera donnée comme premier (et seul) paramètre. Rappelons que les paramètres du programme sont indiqués après la commande java NomDuProgramme et sont stockés dans le tableau de chaînes de caractères arg fourni en entrée de la fonction main.

C1Téléchargez, enregistrez et compilez le fichier M2202TP3.java. C2Enregistrez dans le même dossier un des fichiers d'animation ASCII fournis ci-dessus. C3Exécutez le programme M2202TP3 en ajoutant ce fichier en paramètre.

C4Ajoutez dans la fonction main une instruction permettant d'afficher le nombre de paramètres du programme. C5Ajoutez dans la fonction main une instruction permettant d'afficher l'ensemble des paramètres du programme.

En utilisant la fonction OuvreFichier, C6chargez l'ensemble du fichier dont l'adresse est donnée en premier paramètre du programme dans une file de chaînes de caractères lignes.


D. Affichage de l'animation (45 min) 37%

Dans la fonction main, D1ajoutez les instructions permettant d'afficher en un seul bloc l'ensemble des lignes de la file lignes.

Dans la fonction main, D2ajoutez les instructions permettant d'afficher les unes sous les autres toutes les lignes de la file lignes.
Indication (à surligner pour lire) : Il faut donc afficher ligne par ligne les lignes contenues dans la file de chaînes de caractères.

D3Enregistrez dans une variable entière appelée lignesParImage le contenu de la première ligne du fichier chargé (pensez à utiliser la fonction permettant de convertir en entier une chaîne de caractères contenant des chiffres).

D4Insérez dans la boucle créée lors de la première question de cette partie une instruction permettant de faire 50 millisecondes de pause à la fin de l'affichage d'une image provenant du fichier.
Indication (à surligner pour lire) : Pour cela, vous compterez le nombre de lignes affichées par la boucle, et utiliserez la valeur de lignesParImage, ainsi que la fonction modulo (qui est, rappelons-le, notée % en Java)


E. Fonctions avancées d'affichage (30 min) 75%

E1Créez une nouvelle fonction LitVideo qui prend en entrée une chaîne de caractères contenant l'adresse d'un fichier texte contenant une animation ASCII et affiche cette animation : vous allez donc déplacer vers cette fonction une partie du contenu de la fonction main.

E2Ajoutez à la fonction LitVideo une entrée entière timing qui indique le temps d'attente à fixer entre chaque image.

E3Ajoutez à la fonction LitVideo une entrée booléenne credits qui, quand elle vaut true, indique qu'il faut afficher en permanence, sous l'animation, sa source.

E4Ajoutez à la fonction LitVideo une entrée booléenne enBoucle qui, quand elle vaut true, indique qu'il faut afficher l'animation en boucle.

E5Créez une fonction LitVideoSplitScreen qui prend en entrée deux chaînes de caractères contenant chacune l'adresse d'un fichier texte contenant une animation ASCII et affiche les deux vidéos correspondantes en mode "splitscreen", c'est-à-dire l'une à gauche de l'autre, avec une barre verticale entre les deux.

E6Modifiez la fonction main de telle sorte que le programme accepte une deuxième adresse de fichier en paramètre, qui sera passée comme deuxième entrée de la fonction LitVideoSplitScreen.