Réalisations /

Ligne 4 Multiplayer


Transposition du jeu "Ligne 4" sur Node.js, avec Express et Socket.io
#Node.js Projet terminé

Informations

Ligne 4 se base sur le jeu de société Puissance 4 qui se joue sur une grille de 7x6. Ce jeu consiste à aligner quatre jetons d'une même couleur horizontalement, verticalement ou diagonalement pour remporter la partie.

C'est une adpatation de la version locale dans une version jouable en ligne.

  • Utilisation du framework Express ainsi que de la librairie Socket.io pour la communication entre serveur et clients.
  • Les fonctionnalités sont identiques à la version locale, hormis l'ajout du nombre de joueurs connectés / en jeu et la suppresion du mode de jeu contre l'IA.

Fonctionnalités :

  • Le joueur doit saisir un pseudonyme et a la possibilité de choisir la couleur de ses jetons (par défaut une couleur est sélectionnée aléatoirement).
  • Le joueur peut alors, soit :
    • Créer un salon et attendre qu'un autre joueur vienne le rejoindre, il a également la possibilité de partager le lien de son salon pour qu'un autre joueur le rejoigne directement
    • Rejoindre un des salons disponibles
  • L'hôte de la partie commence toujours en premier.
  • Le score et le tour de jeu (avec la couleur du jeton) sont indiqués à côté du plateau.
  • Chaque joueur joue l'un après l'autre en sélectionnant une colonne pour placer un jeton : si la colonne a un emplacement de libre, le jeton est inséré sur la première case vide en partant du bas.
  • Les conditions de fin de partie :
    • Un joueur aligne quatre de ses jetons horizontalement, verticalement ou diagonalement. La combinaison gagnante est mise en valeur et le score du joueur est incrémenté.
    • Plus aucun jeton ne peut être inséré sur le jeu, le jeu se bloque.
  • Un bouton apparaît chez l'hôte pour commencer une nouvelle partie, le score est conservé d'une manche à l'autre.
  • Des messages viennent renseigner lorsqu'un joueur remporte la manche ou prévient lorsque l'adversaire quitte le jeu.

#NodeJS #Express #SocketIO