De Scratch Wiki en français

(Page créée avec « ---- <div style="margin: 0.5em; padding: 0.25em 0.9em;"><center><span style="font-size:2em">'''Scratch devine ton username'''</span></center></div> ---- Hey ! Cette fois,... »)
 
Ligne 60 : Ligne 60 :
 
</scratchblocks>
 
</scratchblocks>
  
On va ajouter une erreur, comme ça, le programme sera plus réaliste. Disons qu'il va se tromper sur la troisième lettre. Ce script est long, mais il serait plus compliqué d'utiliser une liste.
+
On va ajouter une erreur, comme ça, le programme sera plus réaliste. Disons qu'il va se tromper sur une lettre aléatoire. On va utiliser une liste. Il y a d'autres moyens, mais celui-là est la premier auquel j'ai pensé X) Attention, il est long, donc...
  
''Tutoriel en cours d'écriture''
+
<scratchblocks>
 +
mettre [lettre v] à [1]
 +
répéter (longueur de (nom d'utilisateur)) fois
 +
ajouter (lettre (lettre) de (nom d'utilisateur)) à [liste v]
 +
ajouter à [lettre v] (1)
 +
end
 +
remplacer l'élément (nombre aléatoire entre (1) et (longueur de [liste v])) de la liste [liste v] par [a]
 +
mettre [lettre v] à []
 +
répéter (longueur de (liste)) fois
 +
mettre [lettre v] à (regroupe (lettre) (élément (1 v) de [liste v])
 +
supprimer l'élément (1 v) de la liste [liste v]
 +
end
 +
</scratchblocks>
 +
 
 +
Détaillons ce script :
 +
 
 +
La variable lettre sera "recyclée", dans ce script. C'est-à-dire que nous l'utiliserons pour différentes utilités :
 +
* La première fois, elle sert de '''compteur''', elle permet de basculer d'une lettre à une autre dans le nom d'utilisateur.
 +
* Ensuite, on s'en sert pour regrouper le contenu de la liste en une seule variable.
 +
 
 +
Dans la première boucle, nous allons :
 +
* Décomposer le nom d'utilisateur.
 +
* Inscrire '''chaque lettre''' dans une ligne de la liste lui correspondant.
 +
 
 +
Par exemple, dans "Zelda", cela donnera :
 +
* Z = 1
 +
* E = 2
 +
* L = 3
 +
* etc...
 +
 
 +
Passons à la seconde boucle. Cette fois, l'objectif est de :
 +
* Regrouper tous les éléments de la liste en une seule entrée.
 +
* Vider la liste au fur et à mesure.
 +
 
 +
Et enfin, entre les deux boucles, nous choisissons un élément au hasard dans la liste et le remplaçons par "a" à l'aide de ce bloc :
 +
 
 +
<scratchblocks>
 +
remplacer l'élément (nombre aléatoire entre (1) et (longueur de [liste v])) de la liste [liste v] par [a]
 +
</scratchblocks>
 +
 
 +
Mais au lieu de mettre "a", dans la petite entrée à la fin, nous pouvons mettre une lettre de l'alphabet au hasard :
 +
 
 +
<scratchblocks>
 +
(lettre (nombre aléatoire entre (1) et (26)) de [azertyuiopqsdfghjklmwxcvbn])
 +
</scratchblocks>
 +
 
 +
On peut rajouter des chiffres, des symboles, etc... et changer le "26" par la même occasion !
 +
 
 +
Maintenant, le lutin doit (bien évidemment) '''prononcer l'erreur''' ! Ce script sera utile :
 +
 
 +
<scratchblocks>
 +
demander (regroupe (lettre) [ ?]) et attendre
 +
</scratchblocks>
 +
 
 +
Désormais, ajoutons ce script créé au programme :
 +
 
 +
<scratchblocks>
 +
quand le drapeau vert pressé
 +
demander (regroupe (lettre (1) de (nom d'utilisateur)) [ est-elle la première lettre ?]) et attendre
 +
mettre [lettre v] à [1]
 +
répéter (longueur de (nom d'utilisateur)) fois
 +
ajouter (lettre (lettre) de (nom d'utilisateur)) à [liste v]
 +
ajouter à [lettre v] (1)
 +
end
 +
remplacer l'élément (nombre aléatoire entre (1) et (longueur de [liste v])) de la liste [liste v] par [a]
 +
mettre [lettre v] à []
 +
répéter (longueur de (liste)) fois
 +
mettre [lettre v] à (regroupe (lettre) (élément (1 v) de [liste v])
 +
supprimer l'élément (1 v) de la liste [liste v]
 +
end
 +
demander (regroupe (lettre) [ ?]) et attendre
 +
demander (regroupe (nom d'utilisateur) [ ?]) et attendre
 +
</scratchblocks>
 +
 
 +
Voilà ! Reprenons l'exemple de "Zelda", le chat dira peut-être donc :
 +
* z est-elle la première lettre ?
 +
* zalda ?
 +
* zelda ?

Version du 9 septembre 2017 à 11:08


Scratch devine ton username

Hey ! Cette fois, sur ce tutoriel, tout tournera autour d'un seul bloc. Voici un rapide aperçu de ce que nous allons faire :

  • Scratch va tenter de deviner le nom d'utilisateur du joueur
  • Il commencera par trouver la première lettre, voire la deuxième
  • Après un bref instant de réflexion, il trouvera plus ou moins le pseudonyme, se trompant d'une lettre
  • A la fin, le joueur a l'occasion de répondre que Scratch s'est trompé, bien que ce soit probablement faux X)

Et voilà ! Si ça t'intéresse, tu peux lire la suite ! Sinon... ben... pourquoi avoir lu cet article ?

La base du projet

Autant le révéler tout de suite, c'est autour de ce bloc que le projet tournera, donc :

(nom d'utilisateur)

Mais un projet n'étant constitué que de cela :

quand le drapeau vert pressé
dire (nom d'utilisateur)

Serait assez... incomplet, disons ^^

C'est pourquoi je te propose déjà d'utiliser les questions/réponses. Le joueur se sent plus impliqué dans le programme, c'est toujours plus agréable. Ensuite, un point d'interrogation est le bienvenu, et pour cela tu peux utiliser un regroupe. Voici le résultat :

quand le drapeau vert pressé
demander (regroupe (nom d'utilisateur) [ ?]) et attendre

N'oublie pas l'espace avant le point d'interrogation !

Hésitation

Scratch doit maintenant procéder par étapes. Ajoute donc ce groupe dans ton script :

demander (regroupe (lettre (1) de (nom d'utilisateur)) [ est-elle la première lettre ?]) et attendre

Toujours sans oublier l'espace.

Comme ça, le lutin va donner l'impression de deviner par étape le pseudonyme. D'abord la première lettre, la deuxième si tu le souhaites (mais là, c'est inutile de te montrer le script, non ?).

Erreur

On en est donc à ça (si tu t'es contenté de la première lettre) :

quand le drapeau vert pressé
demander (regroupe (lettre (1) de (nom d'utilisateur)) [ est-elle la première lettre ?]) et attendre
demander (regroupe (nom d'utilisateur) [ ?]) et attendre

On va ajouter une erreur, comme ça, le programme sera plus réaliste. Disons qu'il va se tromper sur une lettre aléatoire. On va utiliser une liste. Il y a d'autres moyens, mais celui-là est la premier auquel j'ai pensé X) Attention, il est long, donc...

mettre [lettre v] à [1]
répéter (longueur de (nom d'utilisateur)) fois
ajouter (lettre (lettre) de (nom d'utilisateur)) à [liste v]
ajouter à [lettre v] (1)
end
remplacer l'élément (nombre aléatoire entre (1) et (longueur de [liste v])) de la liste [liste v] par [a]
mettre [lettre v] à []
répéter (longueur de (liste)) fois
mettre [lettre v] à (regroupe (lettre) (élément (1 v) de [liste v])
supprimer l'élément (1 v) de la liste [liste v]
end

Détaillons ce script :

La variable lettre sera "recyclée", dans ce script. C'est-à-dire que nous l'utiliserons pour différentes utilités :

  • La première fois, elle sert de compteur, elle permet de basculer d'une lettre à une autre dans le nom d'utilisateur.
  • Ensuite, on s'en sert pour regrouper le contenu de la liste en une seule variable.

Dans la première boucle, nous allons :

  • Décomposer le nom d'utilisateur.
  • Inscrire chaque lettre dans une ligne de la liste lui correspondant.

Par exemple, dans "Zelda", cela donnera :

  • Z = 1
  • E = 2
  • L = 3
  • etc...

Passons à la seconde boucle. Cette fois, l'objectif est de :

  • Regrouper tous les éléments de la liste en une seule entrée.
  • Vider la liste au fur et à mesure.

Et enfin, entre les deux boucles, nous choisissons un élément au hasard dans la liste et le remplaçons par "a" à l'aide de ce bloc :

remplacer l'élément (nombre aléatoire entre (1) et (longueur de [liste v])) de la liste [liste v] par [a]

Mais au lieu de mettre "a", dans la petite entrée à la fin, nous pouvons mettre une lettre de l'alphabet au hasard :

(lettre (nombre aléatoire entre (1) et (26)) de [azertyuiopqsdfghjklmwxcvbn])

On peut rajouter des chiffres, des symboles, etc... et changer le "26" par la même occasion !

Maintenant, le lutin doit (bien évidemment) prononcer l'erreur ! Ce script sera utile :

demander (regroupe (lettre) [ ?]) et attendre

Désormais, ajoutons ce script créé au programme :

quand le drapeau vert pressé
demander (regroupe (lettre (1) de (nom d'utilisateur)) [ est-elle la première lettre ?]) et attendre
mettre [lettre v] à [1]
répéter (longueur de (nom d'utilisateur)) fois
ajouter (lettre (lettre) de (nom d'utilisateur)) à [liste v]
ajouter à [lettre v] (1)
end
remplacer l'élément (nombre aléatoire entre (1) et (longueur de [liste v])) de la liste [liste v] par [a]
mettre [lettre v] à []
répéter (longueur de (liste)) fois
mettre [lettre v] à (regroupe (lettre) (élément (1 v) de [liste v])
supprimer l'élément (1 v) de la liste [liste v]
end
demander (regroupe (lettre) [ ?]) et attendre
demander (regroupe (nom d'utilisateur) [ ?]) et attendre

Voilà ! Reprenons l'exemple de "Zelda", le chat dira peut-être donc :

  • z est-elle la première lettre ?
  • zalda ?
  • zelda ?
Les cookies nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation des cookies.