Fonctionnement côté Client (snake.js + index.html)

Rôle du client :

  • Afficher l'état du jeu (plateau, serpents, nourriture)
  • Gérer les entrées clavier du joueur
  • Envoyer les mouvements au serveur en temps réel
  • Afficher le résultat de la partie (gagné, perdu, égalité)

Organisation du client :

Connexion :

  • L'utilisateur entre un code de salle et appuie sur :
  • En attente d'un autre joueur s'il est seul

Affichage du jeu :

  • Utilisation d'un canvas HTML5 de 800x800 pixels
  • Chaque case mesure 40x40 pixels
  • Serpents colorés :
    • Vert pour Joueur 1, Bleu pour Joueur 2
    • La tête est plus foncée pour la distinguer

Synchronisation :

  • Chaque fois que l'état du jeu est reçu du serveur (updateesame), le canvas est redessiné

Fin de partie :

  • Si victoire ou défaite : message "Tu as gagné" ou "Tu as perdu"
  • Si égalité : message "Match nul"

Code de la condition :

socket.on('gameOver', (result) => {
if (result === 'draw') alert('Match nul !');
else if (playerIndex === 0 && result === 'green') alert('Tu as gagné !');
else if (playerIndex === 1 && result === 'blue') alert('Tu as gagné !');
else alert('Tu as perdu !');
	});