pendu fini (td3)

This commit is contained in:
2022-09-21 12:09:38 +02:00
parent 7b82663ae0
commit d1d7b2693f
13 changed files with 1689 additions and 0 deletions

60
TD/TD3/pendu/serveur.js Normal file
View File

@@ -0,0 +1,60 @@
const fetch = require('node-fetch');
const WebSocket = require('ws');
var word;
var game;
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
function getWordSize() {
return JSON.stringify(["Taille", word.length]);
}
function displayLetter(char) {
return JSON.stringify(["Char", char, word.indexOf(char)]);
}
// On créé notre Web Serveur qui écoute sur le port 8080
const wss = new WebSocket.Server({
port: 8080
});
fetch('http://localhost:3001/mots') // une requete GET
.then((response) => { // lorsque la requête est terminée on traite la réponse
response.json() // que lon passe en JSON
.then((mots) => { // On fois fait on peut travailler sur la liste des mots
word = mots[getRandomInt(Object.keys(mots).length)].value; //on choisi aléatoirement le mot dans la liste mots
console.log("Mot choisi : " + word); //on l'affiche sur notre console serveur pour tester plus facilement
game = word.length;
}
);
}).catch(error => console.error);
// Lorsqu'un client se connecte on reçoit un événement 'connection'
wss.on('connection', ws => {
ws.send(getWordSize());
// Lorsqu'il nous envoie un message on reçoit un événement message ainsi que le message !
ws.on('message', message => {
console.log(`Received message => ${message}`);
let char = message.charAt(1);
if(word.indexOf(char) > -1) {
game--;
ws.send(displayLetter(char));
if(game === 0) {
ws.send(JSON.stringify(["Partie", true]));
}
} else {
ws.send(JSON.stringify(["CharError"]));
}
});
})