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 !');
});