Header image  
Département Informatique  
    HOME   |  
 
 
Scratch Tutorial

4 - Les tests

On souhaite réaliser un programme où l'ordinateur "pense" à un nombre entre 1 et 4. Le joueur propose alors une valeur entre 1 et 4. Si sa proposition correspond au nombre "pensé" par l'ordinateur, le chat doit dire "gagné" sinon il doit dire "perdu".

Pour cela, vous allez devoir commencer par créer 2 variables : 'nbproposé' et 'nbMystérieux'. Associez un slider entre 1 et 4 à la variable 'nbProposé'.
Ensuite, dans la famille d'instructions 'Contrôle', vous allez utiliser une nouvelle instruction permettant de faire des tests : le bloc 'si ... sinon ....'
Le principe de cette structure conditionnelle est de tester une condition, si cette condition est vraie, on fait un bloc d'instructions sinon, si elle est fausse, on fait l'autre bloc d'instructions.
Vous allez aussi devoir utiliser 2 nouveaux blocs appartenant à la famille 'Nombres' : le bloc permettant de tester l'égalité ou non entre 2 variables et le bloc permettant de générer un nombre aléatoire entre 2 valeurs  et aussi un nouveau bloc se trouvant dans la famille 'Apparence' : le bloc 'dire Hello'.
Réalisez alors le programme suivant :

Exécutez ce programme et constatez que quand les contenus des 2 variables ('nbMystérieux' et 'nbProposé') sont identiques, le chat dit "gagné', sinon il dit "perdu".

Question : modifiez ce programme pour tester si le nombre proposé est plus petit que le nombre mystérieux, auquel cas il faudra dire "plus grand" sinon on dira "plus petit". 

Question : dites ce que fait le programme suivant :


Rebond

On souhaite écrire un programme dans lequel une balle va rebondir indéfiniment sur des murs.
Pour cela, nous avons besoin de nouvelles instructions. Commencez par récupérer le plateau de jeu et la balle sous la forme d'un projet que vous allez ouvrir à l'aide de bouton 'open' de Scratch.  
Pour commencer, l'instruction 'Contrôle / Répéter indéfiniment' va permettre, comme son nom l'indique, de répéter indéfiniment et non pas un nombre données de fois un bloc d'instructions.
Le bloc 'Mouvement / changer x par ...' va permettre d'augmenter la valeur courante de x (position horizontale de la balle) d'une certaine valeur.
Le programme suivant déplace donc la balle vers la droite jusqu'à ce qu'elle sorte de l'écran.
 
Maintenant, il s'agit de détecter la collision de la balle avec le bord rouge. pour cela, on va utiliser une instruction conditionnelle 'Contrôle / Si' et dans son test, on va mettre un test de couleur que l'on trouve dans la famille 'Capteurs'. Ce bloc va tester si une couleur, choisie à l'aide de la pipette, se trouve au dessus d'une autre couleur .
Faites alors le programme suivant :

Lancez le programme et constatez que lorsque le bord est atteint, le message correspondant s'affiche.
Pour finir, il s'agit d'inverser le sens de déplacement jusqu'à heurter l'autre mur.
Pour cela, on va utiliser une nouvelle variable 'sensX' qui aura comme valeur soit 1 soit -1 suivant que l'on souhaite se déplacer vers la droite ou vers la gauche. Pour inverser le sens, il suffira de multiplier la valeur du sens actuel par -1. S'il valait 1, il va passer à -1, s'il valait -1, il va passer à 1.
Voici le programme correspondant :

Pour arrêter le programme, cliquez sur l'hexagone rouge (en haut à droite).

Question : récupérez ce nouveau plateau de jeu et faites un programme où la balle se déplace en diagonale et rebondit sur les bords rouges et verts.