Initiation Algorithmique

Un premier script

Ouvrir le logiciel Scratch.

Supprimer le chat en faisant un clic droit sur l'image. Et créer un nouvel objet tout simplement un point de la plus petite taille possible et créer le script suivant.

Cliquer sur le script pour le mettre en exécution. Que fait-il?

Exercice

  1. Compléter ce script pour qu'à l'écran soit affiché un carré
  2. En utilisant la commande répéter faire un script plus court qui trace un carré

Variable

On veut tracer un carré n'importe où dans la fenêtre graphique. Et non plus à partir du point de coordonnées (0,0).

L'utilisateur va donc choisir à partir d'où on va tracer le carré.

Deux messages sont envoyés à l'utilisateur ainsi et récupérés dans des containers ou variables significatives appelées abscisse et ordonnée qu'il faudra créer au préalable. (Aller dans variables).

Compléter le script pour qu'il trace un carré n'importe où dans la fenêtre graphique et l'exécuter.

Test

Nous voulons améliorer le programme précédent et tracer un carré de taille 100 mais toujours visible.

Ainsi nous allons utiliser la commande si ....

Faire un programme qui en tenant compte des nombres entrés par l'utilisateur trace un carré de taille 100 mais toujours visible. à l'écran.

Voici le "squelette" de ce programme ou algorithme


//Variables:
abscisse
ordonnée

//Entrée
Demander à l'utilisateur les valeurs de abscisse et ordonnée

//Traitement
Si nous sommes trop près du bord de la fenêtre graphique alors
	
	 ......à compléter.......
Sinon
    Tracer un carré de coté 100 pas comme au début
FinDeSi


Un mini-projet

Projet: Créer quatre objets en interaction:

  1. Une balle rouge (petite) qui :
    1. Rebondit sur les bords de la fenêtre graphique
    2. Rebondit sur une raquette bleue en bas de la fenêtre
    3. Touche une cible verte mobile en haut de la fenêtre
  2. une raquette bleue (un trait fin) située en bas de la fenêtre qu'on déplacera avec le pointeur de la souris
  3. une cible verte (un trait épais) horizontale qui se déplace horizontalement d'un bord à l'autre
  4. Un compteur qui compte le nombre de fois où la cible verte est touchée dans une durée affichée dès le départ

Le projet n'est pas fermé aussi vous pouvez faire preuve d'originalité dans certains points, comme par exemple la vitesse de la balle, la variation de vitesse de la cible à chaque rebond, etc ...

Analyse

A l'aide d'un diagramme définir les propriétés de chaque objet.

Puis définir les interactions entre les objets.

Ecriture des scripts

Script de la balle rouge

  1. Faire déplacer la balle rouge et la faire rebondir sur les bords
  2. En mettant la vitesse de la balle au minimum et en affichant la direction, constater que l'angle d'incidence i est égal à l'angle de réflexion r
  3. Il s'agit donc de recréer la fonction "rebondir si le bord est atteint" en "rebondir si la raquette est atteinte" . Créer une variable angleReflexion
  4. Adapter le script pour prendre en compte le contact de la balle rouge et la cible mobile verte.

Script de la cible mobile

  1. Faire un script pour que la cible se déplace horizontalement d'un bord à l'autre
  2. Si la balle touche la cible alors la cible envoie un message à tous donc au compteur pour dire que la balle l'a touché. Le compteur recevant ce message augmente de 1 son compteur (créer une variable compteur pour l'objet compteur)

Script du compteur

  1. Le compteur donne le top départ du jeu en envoyant un message à tous . A ce moment il déclenche un chronomètre pour une durée de 20 secondes. Le temps écoulé est affiché à l'écran.
  2. Quand il reçoit un message lui prévenant que la balle a touché la cible, il augmente son compteur de 1. La variable compteur est affichée à l'écran.