• Aucun résultat trouvé

Partiel LI260 - Groupe 2/6

N/A
N/A
Protected

Academic year: 2022

Partager "Partiel LI260 - Groupe 2/6"

Copied!
2
0
0

Texte intégral

(1)

Module LI260 – Licence 2 ann´ee 2012–2013

Partiel LI260 - Groupe 2/6

– Tous les exercices sont ind´ependants

– Seul document autoris´e : formulaire de 8 pages reli´ees – T´el´ephones portables ´eteints et rang´es

Exercice 1(≈6pts) – Cr´eation d’un circuit `a partir d’une image

Nous souhaitons cr´eer un objet Circuit `a partir d’une image. Du point de vue pratique, nous disposerons seulement du nom de fichier de l’image.

Q 1.1 Architecture g´en´eraleDans quel package d´evelopper la classe permettant de r´ealiser cette op´eration ? Proposer un nom de classe.

Q 1.2 CodageDonner le code de la classe en respectant les r`egles suivantes. Il sera tenu compte de la propret´e du code dans la notation (utilisation de m´ethode priv´ee pour ne pas surcharger la m´ethode...)

R`egles de conversion dans l’ordre (la premi`ere valid´ee est accept´ee) : 1. Herbe :Si la composante verte est sup´erieure de plus de 100 aux autres 2. Eau :Si la composante bleue est sup´erieure de plus de 100 aux autres

3. Route :Si les trois composantes RGB sont ´egales et comprises entre 50 et 200 4. StartPoint : Si les trois composantes RGB sont inf´erieures `a 20 (noir)

5. EndLine : Si le bleu et le vert sont ´egaux entre eux et sup´erieur de 100 `a la composante rouge (cyan) 6. BandeBlanche :Si les trois composantes RGB sont sup´erieures `a 220

7. BandeRouge :Si la composante rouge est sup´erieure de plus de 100 aux autres 8. Cas par d´efaut : conversion enRoute.

Gestion des exceptions : – Afficher un message d’erreur – Renvoyernull

Directions par d´efaut – Direction de d´epart :(0,1) – Direction d’arriv´ee :(0,1) V´erifications :

– Si le circuit ne comporte pas de point de d´epart – Affichage d’un message d’erreur + cr´eation normale – Si le circuit comporte plusieurs points de d´epart

– Affichage d’un message d’erreur + retournull – Si le circuit ne comporte pas de ligne d’arriv´ee

– Affichage d’un message d’erreur + cr´eation normale Documentation :

– Lire une image :

[c l a s s ImageIO ] public s t a t i c B u f f e r e d I m a g e r e a d ( F i l e i n p u t ) throws I O E x c e p t i o n – Manipuler une image :

[c l a s s B u f f e r e d I m a g e ] public i n t g e t H e i g h t ( ) [c l a s s B u f f e r e d I m a g e ] public i n t getWidth ( )

[c l a s s B u f f e r e d I m a g e ] public i n t getRGB (i n t i , i n t j ) // C o n v e r s i o n de getRGB v e r s l e s t r o i s c o u l e u r s :

C o l o r c o l o r = new C o l o r ( image . getRGB ( i , j ) ) ; // pour l e p i x e l ( i , j ) i n t r e d = c o l o r . getRed ( ) ; // c o m p r i s e n t r e 0 e t 255

i n t g r e e n = c o l o r . g e t G r e e n ( ) ; // c o m p r i s e n t r e 0 e t 255 i n t b l u e = c o l o r . g e t B l u e ( ) ; // c o m p r i s e n t r e 0 e t 255

(2)

Module LI260 – Licence 2 page 2

Exercice 2(≈5pts) – Strategy

On consid`ere que la voiture, pouss´ee dans ses derni`eres limites, a tendance `a surchauffer. Afin de ne pas endommager la m´ecanique, il est n´ecessaire de relˆacher l’acc´el´erateur (commande≤0) pendant 5 coups si la vmaxa ´et´e atteinte pendant 20 coups de suite. On souhaite adapter le comportement de laStrategyRadarpour prendre en compte cette contrainte. Rappel de l’interfaceStrategy:

public i n t e r f a c e S t r a t e g y { public Commande getCommande ( ) ; }

Q 2.1Proposer une impl´ementation bas´ee sur lad´ecorationpour r´ealiser cette op´eration (classeStrategySurchauffeDecoration)

Q 2.2Proposer une impl´ementation bas´ee sur l’h´eritagepour r´ealiser cette op´eration (classeStrategySurchauffeHeritage)

Q 2.3Comparer rapidement les deux solutions

Exercice 3(≈5pts) – Optimisation

On consid`ere maintenant que la direction de d´epart est libre (et non plus impos´ee) et on souhaite l’optimiser en explorant une liste d’angles possibles. On propose d’utiliser le plan suivant (qui permet de ne pas modifier les classes existantes) :

1. Cr´eation du circuit

2. Boucle d’exploration des angles de d´epart (a) Cr´eation de la voiture

(b) Commande(s) influant sur la rotation de la voiture pour atteindre l’angle d´esir´e (c) Cr´eation de la strat´egie (au choix, radar par exemple)

(d) Lancement d’une simulation et r´ecup´eration du temps de parcours

Q 3.1Proposer un programme (main) permettant de trouver direction de d´epart optimale et afficher le gain en nombre de coups par rapport `a la direction par d´efaut(0,1)

Exercice 4(≈5pts) – T´el´em´etrie

Nous souhaitons construire un syst`eme de t´el´em´etrie qui conserve au cours de la course : – les commandes fournies par la strat´egies

– les principales donn´ees de la voiture (vitesse, position, direction)

La t´el´em´etrie sera instanci´ee sans modifier les classes existantes. On envisage deux options : 1. La t´el´em´etrie est un objet qui ´ecoute laSimulation

Rappel : un ´ecouteur d’´ev`enement branchable sur laSimulationsuit le cahier des charges suivant public i n t e r f a c e U p d a t e E v e n t L i s t e n e r {

public void manageUpdate ( ) ; }

2. La t´el´em´etrie est un d´ecorateur de strategy

Q 4.1Donner les deux impl´ementationsTelemetrieSimulationetTelemetrieStrategyDecorator(r´efl´echir

`

a l’interface impl´ement´ee par chacune des deux classes et aux attributs des classes avant de se lancer dans le code)

Q 4.2Donner les quelques lignes dumainqui permettent de brancher la t´el´em´etrie sur la course `a jouer Q 4.3Comparer les deux approches : laquelle vous semble la pluspropre?

Comment g`erent elles laStrategyListeCommandes?

Q 4.4Imaginer des usages de la t´el´em´etrie pour am´eliorer vos performances

Références

Documents relatifs

 quand on tombe sur un oiseau, il faut lui donner le nombre de pains indiqué.  la partie s’arrête quand un enfant est arrivé dans

étiquettes en surnombre

Découvrir du monde GS (numération): associer le nombre à la quantité.. Consigne : Colorie la case qui indique le bon

[r]

Cette énergie calorifique, transportée par l'eau sous pression, est utilisée, via l'échangeur (générateur de vapeur), par le circuit secondaire (étudié dans la partie 3.2)

ANNEX 1 Revival, Religious Practice of Jamaica inventory records at the African Caribbean Institute of Jamaica/Jamaica Memory

chapapp 1 - Suites récurrentes d’ordre un 21 1.1 Suites récurrentes linéaires du premier ordre à coefficients constants et second membre constant 21 1.2 Équations aux

Chapitre 1 - Suites récurrentes d'ordre un 21 1.1 Suites récurrentes linéaires du premier ordre à coefficients constants et second membre constant 21 1.2 Équations aux