Médiaforma

All posts in Memory

Deuxième étape : Tirage aléatoire des cartes

Le but du jeu est d’apparier douze cartes. Pour représenter ces cartes, nous allons leur affecter un chiffre compris entre 1 et 6. La position initiale des cartes est définie dans le corps du document, via la variable JavaScript init :

var init=’123456654321′;

Pour mélanger les cartes, nous allons utiliser plusieurs fonctions JavaScript :

  • split() pour diviser la chaîne init en un tableau de douze éléments : un pour chaque caractère ;
  • sort() pour trier les caractères isolés par la fonction split() ;
  • Math.random() pour obtenir un nombre pseudo aléatoire compris entre 0 et 1. Les valeurs retournées par cette fonction sont générées à partir de l’horloge de l’ordinateur.
  • join() pour rassembler les caractères afin d’en faire une chaîne unique.

Voici la syntaxe utilisée :

var cartes = init.split( »).sort(function(){return 0.5-Math.random()}).join( »);

Cette méthode n’est pas optimale, car elle est influencée par la position de départ des éléments à trier. Cependant, dans notre jeu, elle sera bien suffisante !

Les fonctions split(), sort() et join() s’enchaînent. Ainsi, le résultat de la fonction split() sert d’entrée à la fonction sort() et le résultat de la fonction sort() sert d’entrée à la fonction join().

S’il est facile de comprendre l’utilité des fonctions split() et join(), la fonction sort() vous semble peut-être obscure. Voyons comment elle fonctionne.

Sans argument, cette méthode classe par ordre croissant (s’il s’agit de nombres) ou alphabétique (s’il s’agit de texte) les éléments sur lesquels elle travaille.

Lorsqu’une fonction est passée en argument, c’est-à-dire entre les parenthèses de la fonction, les éléments du tableau sont classés en fonction des valeurs retournées par la fonction. Supposons que les éléments a et b doivent être comparés :

  • Si la fonction retourne une valeur négative ou nulle, les éléments a et b sont laissés tels quels ;
  • Si la fonction retourne une valeur positive, les éléments a et b sont inversés.

Dans notre exemple, la fonction retourne la valeur 0.5 – Math .random(). Etant donné que Math.random() retourne des valeurs pseudo-aléatoires comprises entre 0 et 1, l’expression 0.5 – Math.random() retournera des valeurs pseudo-aléatoires comprises entre -0.5 et 0.5. Les éléments du tableau seront donc mélangés, ce qui est exactement l’effet recherché.


Première étape : Création du squelette HTML5

Le jeu repose sur un squelette HTML5 standard.

La première ligne représente la DTD ou déclaration de type de document. Elle indique aux navigateurs les règles d’écriture utilisées dans le langage. Ici, cet en-tête correspond au langage HTML5.

Le document HTML est délimité par les balises <html> et </html>.

L’en-tête est délimité par les balises <head> et </head>. Il va nous permettre de définir :

  1. L’encodage des caractères dans le document avec la balise <meta charset>. L’encodage retenu est le plus utilisé sur le Web : UTF-8. Il permet de faire cohabiter dans un même document des caractères issus de plusieurs langues : le français et le japonais par exemple.
  2. Le titre du document avec la balise <title>. Ce titre apparaîtra dans la barre de titre ou dans l’onglet du navigateur.
  3. Les styles CSS utilisés dans le jeu entre les balises <style> et </style>.

Le corps du document se trouve entre les balises <body> et </body>. C’est à cet endroit que seront insérées les instructions responsables de l’affichage dans le navigateur.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Jeu de Memory</title>
    <style>
    </style>
  </head>
  <body>
  </body>
</html>

Dans cette formation, je vais vous montrer comment réaliser un jeu de Memory en utilisant les langages et standards HTML5, CSS3, JavaScript et jQuery.

Au fil des neuf étapes nécessaires au développement du jeu, vous apprendrez de nombreuses choses. Entre autres :

  • Vous saurez comment mettre en place un squelette standard en HTML5/CSS3 ;
  • Vous apprendrez à utiliser un générateur pseudo-aléatoire en JavaScript pour mélanger des cartes ;
  • Vous verrez comment manipuler le DOM pour y insérer des objets, modifier leur comportement et les mettre à jour pendant la partie ;
  • Vous verrez comment ajouter de l’interactivité au jeu en capturant les événements souris en JavaScript ;
  • Vous apprendrez à améliorer la présentation du jeu en utilisant du code CSS3 ;
  • Vous saurez comment insérer des sons dans un document HTML5 et comment les jouer en jQuery.

Vous êtes certainement impatient de commencer. Alors, entamons la première étape sans plus tarder.