scratch:morpion_step_07

Morpion - Etape 7

Pour le moment, il est possible de jouer plusieurs fois dans la même case. Ce n'est pas quelque chose qui est autorisé quand on joue au morpion !

Pour cela, il va falloir :

  • identifier le numéro de la case dans laquelle on a cliqué
  • vérifier le ce numéro ne correspond pas à une case qui a déjà été jouée

Pour identifier le numéro de la case, on va les numéroter comme ci-dessous :

Nous allons avoir besoin de 3 nouvelles variables :

  • case : c'est une variable classique qui va nous permettre de savoir le numéro de la case dans laquelle on a cliqué
  • cases_joueur_0 : c'est une variable un peu particulière. C'est une liste qui va contenir les cases jouées par le joueur 0.
  • cases_joueur_1 : c'est une variable un peu particulière. C'est une liste qui va contenir les cases jouées par le joueur 1.

Pour créer une liste, il faut :

  • sélectionner la scène
  • aller dans la catégorie Données
  • cliquer sur le bouton Créer une liste

Ensuite, dans le fenêtre qui s'ouvre, il faut donner un nom à la liste puis cliquer sur le bouton Ok :

Il faut donc créer la variable et les 2 listes pour obtenir le résultat :

On peut cacher les variables joueur, ligne et colonne en les désélectionnant :

Afficher les variables est utile pour comprendre comment fonctionne une script et surtout comprendre quand il y a des erreurs dans un script.

C'est pour cela que pour l'instant, on affiche la nouvelle variable et les 2 listes.

D'après la numérotation que l'on a choisie, on peut dire :

  • si ligne = 1 et colonne = 1, alors case = 1
  • si ligne = 1 et colonne = 2, alors case = 2
  • si ligne = 1 et colonne = 3, alors case = 3
  • si ligne = 2 et colonne = 1, alors case = 4
  • si ligne = 2 et colonne = 2, alors case = 5
  • si ligne = 2 et colonne = 3, alors case = 6
  • si ligne = 3 et colonne = 1, alors case = 7
  • si ligne = 3 et colonne = 2, alors case = 8
  • si ligne = 3 et colonne = 3, alors case = 9

On peut donc créer 9 éléments comme celui-ci :

On obtient une longue suite d'éléments qu'il faudrait positionner avant l'élément créer un clone de Lutin_morpion :

On obtiendrait alors une suite vraiment très longue d'éléments !

Nous allons donc faire autrement :

  • nous allons définir un bloc avec tous les éléments de droite
  • nous allons utiliser ce bloc comme un élément juste avant l'élément créer un clone de Lutin_morpion

Pour cela, il faut :

  • aller dans la catégorie Ajouter blocs
  • cliquer sur le bouton Créer un bloc
  • donne le nom identifier la case
  • cliquer sur le bouton Ok

Il ne reste plus qu'à :

  • positionner l'élément définir identifier la case en haut des éléments de droite
  • positionner l'élément Ajouter blocs → identifier la case juste avant l'élément créer un clone de Lutin_morpion

Nous pouvons tester que nous identifions correctement la case.

Avant d'aller plus loin, on va définir 2 nouveaux blocs : identifier ligne et identifier colonne afin de simplifier le script :

Dans le script du lutin, on créer également un bloc positionner le lutin de la façon suivante :

Ensuite, il faut ajouter 2 éléments Données → ajouter … à … :

Si on teste, on observe que le numéro des cases jouées par chaque joueur est bien ajouté à la liste de chaque joueur.

ATTENTION ! Même quand on clique sur l'hexagone rouge, les listes ne sont pas vidées !

Nous allons donc modifier le script de la scène pour vider les listes lorsque l'on clique sur le drapeau vert.

Pour vider une liste, le principe est le suivant : on supprime le premier élément de la liste plusieurs fois jusqu'à ce qu'il n'y ait plus d'élément dans la liste.

On ajoute donc ce bout de script :

Chaque partie devra donc commencer par un clic sur le drapeau vert.

On y est presque ! Il ne plus qu'à vérifier que la case dans laquelle on veut créer un lutin n'est présente dans aucune des listes des joueurs.

On peut le dire de la manière suivante : si la liste cases_joueur_0 ne contient pas la case et la liste cases_joueur_1 ne contient pas la cases, alors on créer le lutin.

Ce qui donne :

C'est terminé !

D'après la numérotation que l'on a choisie, on peut aussi dire :

  • si ligne = 1, alors :
    • si colonne = 1, alors case = 1
    • si colonne = 2, alors case = 2
    • si colonne = 3, alors case = 3
  • si ligne = 2, alors :
    • si colonne = 1, alors case = 4
    • si colonne = 2, alors case = 5
    • si colonne = 3, alors case = 6
  • si ligne = 3, alors :
    • si colonne = 1, alors case = 7
    • si colonne = 2, alors case = 8
    • si colonne = 3, alors case = 9

On peut donc créer 3 éléments comme celui-ci :

Etape précédente Etape suivante

  • scratch/morpion_step_07.txt
  • Last modified: 2020/02/28 10:29
  • by fab