Так что я уверен, что это довольно просто c, и я слишком усложняю это. Я делаю онлайн карточную игру с использованием express, node.js, nodemon, socket.io и phaser3. В основном все игроки должны брать из одной колоды. То, что я пытаюсь сделать, - это иметь одну колоду на стороне сервера, которая представляет собой массив, значение которого выталкивается и отправляется игроку. Таким образом, нет двух игроков, имеющих одинаковую карту. Если у каждого игрока есть своя колода, то каждый раз, когда игрок вытаскивает карту aws, каждый другой игрок должен удалить эту карту из своей версии колоды. Я попытался просто импортировать файл Deck. js, который я записал на свой сервер. js (запустить с node.js, express и nodemon), но затем я получил сообщение об ошибке «не может использовать оператор импорта вне module. "
это мой сервер. js
const server = require('express')();
const http = require('http').createServer(server);
const io = require('socket.io')(http);
import Deck from './client/src/helpers/deck'
let players = [];
io.on('connection', function(socket) {
console.log('A user connected: ' + socket.id);
players.push(socket.id);
io.emit('addPlayer', socket.id);
socket.on('dealCards', function () {
io.emit('dealCards');
});
socket.on('cardPlayed', function(gameObject, player){
io.emit('cardPlayed', gameObject, player);
});
socket.on('disconnect', function() {
console.log('A user disconnected: ' + socket.id);
players = players.filter(player => player !== socket.id);
});
});
http.listen(3000, function () {
console.log('Server Started!');
});
Это моя колода. js, вверху есть два массива со всеми подсказками / ответами.
export default class Deck {
constructor(scene, isPrompt) {
let cards = [];
if(isPrompt) {
cards = prompts;
}
else {
cards = answers;
}
this.draw = () => {
return cards.pop();
}
this.shuffle = () => {
for (let i = cards.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[cards[i], cards[j]] = [cards[j], cards[i]]
}
}
}
}
Я ценю любую помощь !!