From def8e7cdf684ca89dbfb815fc81fec51755600e7 Mon Sep 17 00:00:00 2001 From: H4CK3R-01 <44125287+H4CK3R-01@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:14:47 +0200 Subject: [PATCH] Check if card was used already --- Webservice/Game.js | 1 + Webservice/server.js | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Webservice/Game.js b/Webservice/Game.js index 45082ac..8a6d056 100644 --- a/Webservice/Game.js +++ b/Webservice/Game.js @@ -20,6 +20,7 @@ class Game { this.round = 0; this.hunter = new Hunter(); this.playerNames = []; + this.used_cards = []; } finish_turn() { diff --git a/Webservice/server.js b/Webservice/server.js index f063a87..662d404 100644 --- a/Webservice/server.js +++ b/Webservice/server.js @@ -122,7 +122,10 @@ io.on('connection', socket => { if (game[socket.room].currentStatus !== Game.STATUS.ONGOING) return; if (game[socket.room].current_player_is(socket.username)) { - io.in(socket.room).emit('card', {'username': socket.username, 'card': getRandomCard(difficulty)}); + io.in(socket.room).emit('card', { + 'username': socket.username, + 'card': getRandomCard(difficulty, socket.room) + }); generate_log_message(socket.room, socket.username, "CARD", difficulty); } else { @@ -190,11 +193,18 @@ function generate_log_message(room, user, type, message) { console.info("%s[%s] [%s] [%s]\x1b[0m %s", color, room, user, type, reset_color, message); } -function getRandomCard(difficulty) { +function getRandomCard(difficulty, room) { let filtered_cards = cards.filter(card => { return card.difficulty === difficulty; }); - return shuffleAnswers(filtered_cards[Math.floor(Math.random() * filtered_cards.length)]); + + let tmp = filtered_cards[Math.floor(Math.random() * filtered_cards.length)]; + while (game[room].used_cards.indexOf(tmp.id) !== -1) { + tmp = filtered_cards[Math.floor(Math.random() * filtered_cards.length)]; + } + + game[room].used_cards.push(tmp.id); + return shuffleAnswers(tmp); } function shuffleAnswers(card) { -- 2.45.2