Programmation Web, année 2019
Attention.
Les TD doivent être réalisés sous Linux et non sous Windows. Chaque étudiant doit être inscrit sur Moodle. Le forum peut être utilisé pour poser des questions pendant et en dehors des TD.
A propos de la récupération de script dans le code source de la page
Le code des scripts ne sont désormais plus aussi aisément accessible via l’inspecteur (mais c’est toujours possible de les trouver en cherchant bien). Si vous souhaitez une correction particulière pour une question d’un des TD, je vous invite à la demander via le forum Moodle et je serais ravis de la fournir le plus rapidement possible.
Quelques ressources en lignes
- Le site des tutoriels du W3C est une référence pour les langages du WEB (langue anglaise).
- Pour les non-anglophones le site de mozilla possède de nombreuses ressources en français pour HTML5, CSS3 et JavaScript
- Le site openclassrooms permet également de réviser les bases HTML5 et CSS3.
Une première fonction
- Un générateur aléatoire de nombre entier
Quelle fonction permet de générer un nombre aléatoire? Définir une
fonction genererAleatoirement
JavaScript
qui prend deux arguments borneMin
et borne_max
et qui retourne un entier entre borne_min
et
borneMax
inclus.
- Utilisez la fonction
genereAleatoirement
Utilisez cette fonction pour réaliser l’exemple suivant:
min: max:
function generer() { var bmin = parseInt(document.getElementById(“borne_min”).value); var bmax = parseInt(document.getElementById(“borne_max”).value); var nombres = document.getElementById(“n1”); var nombre = document.createElement(“div”); nombre.setAttribute(“class”, “nombre”); nombre.innerHTML = genererAleatoirement(bmin, bmax); nombres.appendChild(nombre); } function genererAleatoirement(borneMin, borneMax) { if (borneMax < borneMin) return 0; else return Math.floor(Math.random()*(borneMax - borneMin + 1)) + borneMin; }
- Générer pleins de nombres
Générer 50 nombres d’un coup à l’aide d’une boucle for
et de la fonction genererAleatoirement
comme dans l’exemple
suivant.
min: max:
function generer2() { var bmin = parseInt(document.getElementById(“borne_min2”).value); var bmax = parseInt(document.getElementById(“borne_max2”).value); var nombres = document.getElementById(“n2”); var nombre = document.createElement(“div”); nombre.setAttribute(“class”, “nombre”); for (var i=0; i<50; i++) { nombre.innerHTML += genererAleatoirement(bmin, bmax)+“,”; } nombre.innerHTML = nombre.innerHTML.slice(0,-2); nombres.appendChild(nombre); }
Faire bouger une fourmi
Télécharger l’image animée d’une fourmi ici et ajoutez la à votre répertoire.
- Faire bouger la fourmi
En vous inspirant du TD précédant, essayez de reproduire l’exemple suivant. Vous aurez besoin des fonctions trigonométriques usuelles cosinus et sinus.
var f1Posx = 250; var f1Posy = 250; var f1angle = 0; var f1 = document.getElementById(“f1”); function update() { f1.style.transform = “translate(”+f1Posx+“px,”+f1Posy+“px) rotate(”+f1angle+“deg)”; }; function avancer() { f1Posx += -Math.cos(2*f1angle/360*Math.PI) * 50; f1Posy += -Math.sin(2*f1angle/360*Math.PI) * 50; update(); } function gauche() { f1angle += -20; update(); }; function droite() { f1angle += +20; update(); }; update();
Facultatif.
À l’aide de l’évènement onkeydown de l’objet document essayez de diriger la fourmi avec les flèches directionnelless du clavier.
- Enfermer la fourmi dans une boite
Quand la fourmi sors de son carré, elle disparaît. Faites en sorte dans un nouvel exemple et sans toucher à la question 3, qu’elle soit bloquée et ne puisse plus avancer.