diff --git a/client/src/GestionScoresClient.js b/client/src/GestionScoresClient.js deleted file mode 100644 index 3e58122fe5cd16a3ab8ab6d24a9a7371d49c1fdf..0000000000000000000000000000000000000000 --- a/client/src/GestionScoresClient.js +++ /dev/null @@ -1,19 +0,0 @@ -export class GestionScore { - async afficherScores(fichier) { - try { - const response = await fetch(fichier); - const scores = await response.json(); - let html = - '<table><thead><tr><th>Nom</th><th>Score</th></tr></thead><tbody>'; - scores.results.forEach(result => { - html += `<tr><td>${result.nom}</td><td>${result.score}</td></tr>`; - }); - html += '</tbody></table>'; - console.log(html); - return html; - } catch (error) { - console.error('Erreur lors de la lecture du fichier JSON :', error); - return null; - } - } -} diff --git a/client/src/scoreboard.json b/client/src/scoreboard.json index 1f14fbdefdf9313d326b49c9fb5621c67f65f44f..1f9b964ecf3e9db4c8a235b1e807c0fbdd2ef604 100644 --- a/client/src/scoreboard.json +++ b/client/src/scoreboard.json @@ -23,6 +23,99 @@ { "nom": "test", "score": -15 + }, + { + "nom": "pierre", + "score": 20 + }, + { + "nom": "rayane", + "score": -15 + }, + { + "nom": "p", + "score": 30 + }, + { + "nom": "pp", + "score": -15 + }, + { + "nom": "ma", + "score": 70 + }, + { + "nom": "ppapa", + "score": 40 + }, + { + "nom": "mm", + "score": 55 + }, + { + "score": -15 + }, + { + "nom": "testtt", + "score": -15 + }, + { + "score": -5 + }, + { + "nom": "test", + "score": -15 + }, + { + "nom": "m", + "score": 20 + }, + { + "nom": "m`", + "score": -15 + }, + { + "nom": "p", + "score": 5 + }, + { + "nom": "m", + "score": -25 + }, + { + "nom": "test", + "score": -10 + }, + { + "nom": "p", + "score": -15 + }, + { + "nom": "^", + "score": -15 + }, + { + "nom": "m", + "score": -5 + }, + { + "nom": "tes", + "score": -15 + }, + { + "score": -10 + }, + { + "nom": "p", + "score": 0 + }, + { + "nom": "m", + "score": 5 + }, + { + "nom": "p", + "score": -10 } ] } \ No newline at end of file diff --git a/client/src/setHtml.js b/client/src/setHtml.js index 823533502b165f17956fce5d900316fc28b50ae5..de2121c993d5fd3cc8a5c71bf091dbe41532a739 100644 --- a/client/src/setHtml.js +++ b/client/src/setHtml.js @@ -1,4 +1,3 @@ -import { GestionScore } from './GestionScoresClient.js'; export default class setHtml { static credits() { return ` diff --git a/server/ScoreBoard.js b/server/ScoreBoard.js index f7fa6fc29897576eb10a8888d732f6c9e70f24da..09e510a261cff513e9555a225bdef1fb1cd0d3eb 100644 --- a/server/ScoreBoard.js +++ b/server/ScoreBoard.js @@ -9,13 +9,21 @@ export class GestionScore { try { const data = fs.readFileSync(this.jsonFilePath); const scores = JSON.parse(data); + + // Trier les scores par ordre décroissant + scores.results.sort((a, b) => b.score - a.score); + let html = '<table><thead><tr><th>Nom</th><th>Score</th></tr></thead><tbody>'; - scores.results.forEach(result => { + + // Afficher les 10 premiers résultats + const numberOfResults = Math.min(10, scores.results.length); + for (let i = 0; i < numberOfResults; i++) { + const result = scores.results[i]; html += `<tr><td>${result.nom}</td><td>${result.score}</td></tr>`; - }); - html += '</tbody></table>'; + } + html += '</tbody></table>'; return html; } catch (error) { console.error('Erreur lors de la lecture du fichier JSON :', error); diff --git a/server/index.js b/server/index.js index d453023d388188b10487c74ae0e109b506e6ca85..d0f9adb4557c228929dfb05952d7988aa9af7b9b 100644 --- a/server/index.js +++ b/server/index.js @@ -7,7 +7,7 @@ import enemi from './enemis.js'; import { Coordinate } from '../common/Coordinate.js'; import timer from './timer.js'; import Bonus from './bonus.js'; -import { bonusImages, bonusNoms, bonusTaille } from '../common/utils.js'; +import { bonusNoms } from '../common/utils.js'; import { GestionScore } from './ScoreBoard.js'; const app = express(); @@ -183,7 +183,8 @@ setInterval(() => { enemis.forEach(enemi => { if ( enemi.hitbox.colision(avatar.hitbox) && - avatar.getStatut() != 'invincibilite' + avatar.getStatut() != 'invincibilite' && + !avatar.spectateur ) { if (canLostLifeAvatar) { avatar.decrementScore(5); @@ -201,14 +202,16 @@ setInterval(() => { io.emit('dead', avatar.id); } } - if (enemi.getVies() < 0) { - avatar.incrementScore(5); - enemis.splice(enemis.indexOf(enemi), 1); - } + enemi.deplacer(); avatar.colision(enemi.hitbox); avatar.projectiles.forEach(projectile => { if (projectile.hitbox.colision(enemi.hitbox)) { + if (enemi.getVies() < 0) { + console.log(avatar.id); + avatar.incrementScore(5); + enemis.splice(enemis.indexOf(enemi), 1); + } avatar.projectiles.splice( avatar.projectiles.indexOf(projectile), 1