Exo 1 (déplacement de carrés)
Cet exercice permet de travailler à la fois sur la création et le codage d'une classe (et diverses notions de base en POO), mais aussi de son utilisation, et de son implémentation dans une interface graphique.
Contenu de la classe
Créer la classe Square, toute la logique sera encapsulée dans celle ci
Les propriétés privées
Un carré est déterminé par sa couleur, sa taille, sa vitesse de déplacement (step) et un élément du DOM. Vous devez créer donc 4 propriétés privées
Les propriétés statiques
Certaines informations ne sont pas liées au carré, mais aux "règles du jeu". Vous y trouverez :
- les couleurs autorisées (rouge vert bleu)
- la taille minimum et maximum d'un carré (entre 5 et 30 pixels)
- le step min et maximum (entre 1 et 50 px)
- la "map" : zone d'évolution du carré
Toutes ces propriétés sont privées et statiques
Le constructeur
Prends trois paramètres : couleur, taille, step. Le constructeur devra :
- initialiser l'objet avec les valeurs saisies par l'utilisateur
- vérifier que tout soit bon
- dessiner le carré dans la map
Getters / setters
Les 4 propriétés privées doivent toutes avoir des getters et des setters.
- Le setter color doit vérifier que la couleur appartient bien aux couleurs autorisées
- Le setter size doit vérifier que la taille est bien dans l'intervalle autorisé
- Le setter step doit vérifier que le pas est bien compris dans l'intervalle autorisé
Chaque setter devra lever une exceptions en cas de problème, puis l'afficher dans la console.
La méthode draw
Privée, elle devra créer le carré dans la map lors de l'initialisation (si tout est ok au niveau des vérifications)
Les méthodes de mouvement
top, left, bottom, right : ces méthodes sont publiques. Elles devront faire bouger le carré dans la map, mais aussi vérifier que celui ci ne dépasse pas les limites de la map.
Utilisation de la classe
Un script JS procédural permettra d'initialiser le carré, puis d'écouter les différents évènements pour le faire bouger. Vous devrez notamment utiliser les méthodes publiques top, left, bottom, top pour cela, depuis l'extérieur de la classe.
Vidéo