- added function to get random number and card
This commit is contained in:
parent
98177f6b5b
commit
948529818b
@ -1,8 +1,10 @@
|
|||||||
let express = require('express');
|
let express = require('express');
|
||||||
|
let fs = require('fs');
|
||||||
let app = express();
|
let app = express();
|
||||||
let server = require('http').createServer(app);
|
let server = require('http').createServer(app);
|
||||||
let {Server} = require("socket.io");
|
let {Server} = require("socket.io");
|
||||||
let io = new Server(server);
|
let io = new Server(server);
|
||||||
|
let cards = JSON.parse(fs.readFileSync(__dirname + '/../data/cards.json'));
|
||||||
|
|
||||||
let port = 5000;
|
let port = 5000;
|
||||||
server.listen(port, function () {
|
server.listen(port, function () {
|
||||||
@ -46,6 +48,23 @@ io.on('connection', socket => {
|
|||||||
|
|
||||||
generate_log_message(socket.room, socket.username, "LEFT", "");
|
generate_log_message(socket.room, socket.username, "LEFT", "");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Game
|
||||||
|
socket.on('roll dice', function () {
|
||||||
|
let sides = 3;
|
||||||
|
let randomNumber = Math.floor(Math.random() * sides) + 1;
|
||||||
|
|
||||||
|
io.in(socket.room).emit('dice', randomNumber);
|
||||||
|
|
||||||
|
generate_log_message(socket.room, socket.username, "DICE", randomNumber);
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on('get card', function (difficulty) {
|
||||||
|
io.in(socket.room).emit('card', getRandomCard(difficulty));
|
||||||
|
|
||||||
|
generate_log_message(socket.room, socket.username, "CARD", difficulty);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function generate_log_message(room, user, type, message) {
|
function generate_log_message(room, user, type, message) {
|
||||||
@ -63,6 +82,9 @@ function generate_log_message(room, user, type, message) {
|
|||||||
case 'RUNNING':
|
case 'RUNNING':
|
||||||
color = '\x1b[35m';
|
color = '\x1b[35m';
|
||||||
break;
|
break;
|
||||||
|
case 'DICE':
|
||||||
|
color = '\x1b[34m';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
color = '\x1b[0m';
|
color = '\x1b[0m';
|
||||||
}
|
}
|
||||||
@ -74,7 +96,24 @@ function generate_log_message(room, user, type, message) {
|
|||||||
console.info("%s[%s] [%s] [%s]\x1b[0m %s", color, room, user, type, reset_color, message);
|
console.info("%s[%s] [%s] [%s]\x1b[0m %s", color, room, user, type, reset_color, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getRandomCard(difficulty) {
|
||||||
|
let filtered_cards = cards.filter(card => {
|
||||||
|
return card.diffuculty === difficulty;
|
||||||
|
});
|
||||||
|
|
||||||
|
return shuffleAnswers(filtered_cards[Math.floor(Math.random() * filtered_cards.length)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function shuffleAnswers(card) {
|
||||||
|
for (let i = card.answers.length - 1; i > 0; i--) {
|
||||||
|
let j = Math.floor(Math.random() * (i + 1));
|
||||||
|
[card.answers[i], card.answers[j]] = [card.answers[j], card.answers[i]];
|
||||||
|
}
|
||||||
|
return card;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function pad(width, string, padding) {
|
function pad(width, string, padding) {
|
||||||
if (string === undefined || string === null) return pad(width, " ", " ");
|
if (string === undefined || string === null) return pad(width, " ", " ");
|
||||||
return (width <= string.length) ? string : pad(width, string + padding, padding)
|
return (width <= string.length) ? string : pad(width, string + padding, padding)
|
||||||
}
|
}
|
71
data/cards.json
Normal file
71
data/cards.json
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"diffuculty": 1,
|
||||||
|
"question": "Was?",
|
||||||
|
"answers": [
|
||||||
|
{
|
||||||
|
"answer_a": "A",
|
||||||
|
"status": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_b": "B",
|
||||||
|
"status": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_c": "C",
|
||||||
|
"status": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_d": "D",
|
||||||
|
"status": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"diffuculty": 2,
|
||||||
|
"question": "Wie?",
|
||||||
|
"answers": [
|
||||||
|
{
|
||||||
|
"answer_a": "A",
|
||||||
|
"status": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_b": "B",
|
||||||
|
"status": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_c": "C",
|
||||||
|
"status": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_d": "D",
|
||||||
|
"status": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"diffuculty": 3,
|
||||||
|
"question": "Wo?",
|
||||||
|
"answers": [
|
||||||
|
{
|
||||||
|
"answer_a": "A",
|
||||||
|
"status": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_b": "B",
|
||||||
|
"status": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_c": "C",
|
||||||
|
"status": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_d": "D",
|
||||||
|
"status": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
@ -1,22 +1,9 @@
|
|||||||
const app = new PIXI.Application({
|
function start_game() {
|
||||||
autoResize: true,
|
socket.on('dice', function (data) {
|
||||||
resolution: devicePixelRatio,
|
console.log(data);
|
||||||
backgroundColor: 0x0073db
|
});
|
||||||
});
|
|
||||||
document.getElementById('game').appendChild(app.view);
|
|
||||||
|
|
||||||
|
socket.on('card', function (data) {
|
||||||
// -------------------------------------- code --------------------------------------
|
console.log(data);
|
||||||
|
});
|
||||||
// ------------------------------------ end code ------------------------------------
|
}
|
||||||
|
|
||||||
|
|
||||||
// Resize (Do Not modify)
|
|
||||||
window.addEventListener('resize', resize);
|
|
||||||
|
|
||||||
function resize() {
|
|
||||||
let game = document.getElementById('game');
|
|
||||||
app.renderer.resize(game.offsetWidth, game.offsetHeight);
|
|
||||||
}
|
|
||||||
|
|
||||||
resize();
|
|
Loading…
Reference in New Issue
Block a user