Theorie sur l'archi du server / client

pull/1/head
Aurian JAULT 1 year ago
parent 650e89743d
commit b171f5835e

@ -0,0 +1,19 @@
# Coté client
- l'utilisateur récup le deck actuel
- lorsqu'il fait une action -> set/hyperSet
- envoie un event
- idRoom
- idPlayer
- deck
- carteJoué
# Coté serveur
- Crée le deck de base
- le donne a tous les joueurs
- A chaque action fais par un joueur
- Verif si le packet envoyé est le même que celui local
- verif si action est valable -> set ou pas
- envoie un event "updateDeck"
- update les points

@ -0,0 +1,88 @@
room {
id= "INT",
player = [cle,valeur], // cle -> player || valeur -> nombre de points (possible de JSON ça)
deck = Deck
settings =
{
isHyperSet = BOOL,
isPublic = BOOL,
nbCards = INT,
nbAttribs = INT,
nbPlayers = INT
}
}
fonctions =
{
checkFull()
{
return player.length === setting.nbPlayers
}
// utile pour enchainer les appel quand t'es sur de toi
getRoom(id)
{
let res = rooms.filter(element => e.id===id)
if(res)
{
return res;
}
else{
return false;
}
}
createRoom(socket)
{
if(!getRoom(socket.id))
{
rooms.push({
id=id,
player=socket.nom,
deck = new Deck().create(),
settings{
isHyperSet = socket.hyper,
isPublic = socket.public,
nbCards = socket.cards,
nbAttribs = socket.attribs,
nbPlayer = 1
}
})
}
}
// LeaveRoom
leaveRoom(){
let room = getRoom(rooms,id);
if(room.player.length === 1)
{
// Trouver une solution pour remove une room
}
else
{
let index = room.player.indexOf(idUser)
room.player.slice(index,1)
}
}
joinRoom(id)
{
let room = getRoom(id);
if(!room)
{
return false;
}
if(room.setting.isPublic && room.player.length < room.setting.nbPlayer)
{
room.player.push(id)
return true
}
return false;
}
}
Loading…
Cancel
Save