scratch:morpion_step_07

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
scratch:morpion_step_07 [2020/02/27 21:43] – [Ce qu'il faut faire] fabscratch:morpion_step_07 [2020/02/28 10:29] (current) – [Ce qu'on veut faire] fab
Line 3: Line 3:
 ==== Ce qu'on veut faire ==== ==== Ce qu'on veut faire ====
  
-Pour le moment, il est possible de jouer plusieurs fois dans la même case. Ce n'est quelque chose qui est autorisé quand on joue au morpion !+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 : Pour cela, il va falloir :
Line 40: Line 40:
 C'est pour cela que pour l'instant, on affiche la nouvelle variable et les 2 listes. 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 :
 +
 +{{:scratch:pasted:20200227-215216.png}}
 +
 +On obtient une longue suite d'éléments qu'il faudrait positionner avant l'élément ''créer un clone de Lutin_morpion'' :
 +
 +{{:scratch:pasted:20200227-221301.png}}
 +
 +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''
 +
 +{{:scratch:pasted:20200227-221958.png}}
 +
 +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''
 +
 +{{:scratch:pasted:20200227-222502.png}}
 +
 +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 :
 +
 +{{:scratch:pasted:20200227-223505.png}}
 +
 +Dans le script du lutin, on créer également un bloc ''positionner le lutin'' de la façon suivante :
 +
 +{{:scratch:pasted:20200227-223811.png}}
 +
 +Ensuite, il faut ajouter 2 éléments ''Données -> ajouter ... à ...'' :
 +
 +{{:scratch:pasted:20200227-224226.png}}
 +
 +Si on teste, on observe que le numéro des cases jouées par chaque joueur est bien ajouté à la liste de chaque joueur.
 +
 +{{:scratch:pasted:20200227-224340.png}}
 +
 +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 :
 +
 +{{:scratch:pasted:20200227-225535.png}}
 +
 +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 :
 +
 +{{:scratch:pasted:20200227-230559.png}}
 +
 +C'est terminé !
 +==== Ce qu'on pourrait faire de mieux ====
 +
 +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 :
 +
 +{{:scratch:pasted:20200227-215835.png}}
  
 [[scratch:morpion_step_06|Etape précédente]] [[scratch:morpion_step_08|Etape suivante]] [[scratch:morpion_step_06|Etape précédente]] [[scratch:morpion_step_08|Etape suivante]]
  • scratch/morpion_step_07.1582836203.txt.gz
  • Last modified: 2020/02/27 21:43
  • by fab