Bonjour,
Je ne sais pas si je suis dans la bonne section, j'espère ne pas me tromper, si c'est le cas je m'excuse à l'avance
Que j'explique, je me suis lancer actuellement dans le développement d'un petit jeu en PHP, domaine que je n'avais encore jusque la pas abordé.
Je rencontre un problème face à un besoin que je n'ai encore jamais rencontré, à savoir une sorte de synchronisation entre plusieurs joueurs, je m'explique par un exemple :
Imaginons que 4 personnes se connectent à un site pour jouer à la bataille (le jeu de carte hein ! ), on aura un lien "jouer carte" permettant de jouer une carte sélectionnée dans une liste, puis c'est aux autres joueurs, jusqu'à la fin du tour, ensuite calcul de la carte la plus forte, et gain de ces cartes pour le vainqueur.
Et je ne sais pas du tout par quel bout le prendre pour arrivé à un résultat.. j'ai pensé à une solution qui serait d'avoir une BDD à coté qui stockerai les cartes jouées et une fois que 4 cartes sont inscrites (condition vérifié dans la boucle enregistrant les cartes disons) faire le calcul du vainqueur et hop on efface les cartes de la bdd.
en gros me servir de la BDD comme "lien" entre les joueurs qui aurait leur affichage mis à jour dynamiquement avec l'aide de la bdd. (il faudrait même stocker le vainqueur dans la bdd pour ma solution d'ailleurs...)
Mais je me dit que cela risque être très lourd pour la BDD dans la mesure ou on stock des informations qu'on efface peu après, et qu'en imaginant que 40 joueurs sont présents sur le site, et que 10 parties se lancent en même temps, on aura 40 requêtes sql pour insérer les données (une par joueur), 4 requête pour effacer le tour (une par partie), 4 requêtes pour enregistrer le gagnant dans la liste des derniers gagnants...
Au final ça fait beaucoup de requêtes simultanées...
Voilà j'espère avoir été clair sur ce que je cherche à faire, en gros faire circuler des informations entre plusieurs joueurs, en ayant des informations qui resteront temporairement mais visible de tous (le must serait que chaque visiteur puisse visualiser les dernier tours de carte des parties en cours), et des informations moins temporaire comme le gagnant des tours (la bdd fait l'affaire pour cela si il n'y a que ça).
Ah également je cherchais le moyen de faire une mise à jour journalière pour par exemple déplacé la liste des gagnants des parties de cartes dans une autre table qui représenterai les gagnants de la veille, chaque jour à minuit en gros (cela me permettrai d'attribuer un nombre de point aux gagnants en fonction du nombre de partie gagné, nombre de points qui varie en fonction des "performances" des différents joueurs du jour donc pas possible de faire un nombre de points fixe par partie gagné et ainsi mettre à jour un classement des meilleurs joueurs).
Maintenant ma solution me paraissant bancale j'imagine qu'il doit exister d'autres moyens d'arriver à ce résultat, d'ou mon post aujourd'hui pour vous demander de l'aide
Merci d'avance à tout ceux qui répondront à mon message
Partager