|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 16 ![]() |
Bonsoir à tous,
je suis entrain de faire un jeu de plateau et j'ai fait une base de données sous mysql pour stocker mes cartes. J'aurais voulu savoir s'il existait une requête me permettant à chaque fois que je tombe sur une case de passer à la requête qui suit. Par exemple première fois que je tombe sur la case première ligne de ma base de données, puis deuxième fois deuxième ligne... Merci par avance pour vos réponses Très bonne soirée |
|
|
00
|
|
|
#2 |
![]() ![]() |
Une table de BDD SQL est à considérer comme un ensemble. Il n'y a pas d'ordre a priori et ce sont seulement les requêtes qui peuvent déterminer un ordre de présentation des données.
Conformément aux règles de ce forum, il faudrait nous en dire plus pour qu'on puisse t'aider plus efficacement, notamment le nom de ton SGBD et la structure des tables impliquées dans ton problème.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 16 ![]() |
Il s'agit d'une table carte composée de 4 champs: id (auto-increment et clé primaire), titre, contenu, image.
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Informations toujours insuffisantes !
Je ne comprends pas ce que tu veux faire. Lis la phrase en bleu de ma signature et applique son principe si tu veux qu'on t'aide.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#5 | |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 16 ![]() |
Ok alors je vais tâcher d'être plus claire.
J'ai fait un jeu type Monopoly, et mes cartes sont enregistrées dans la base de données "carte" composée de quatre champs id, titre, contenu, image. Lorsque le joueur arrive sur cette case, il pioche une carte. Plus précisément, le premier joueur arrive sur cette case il pioche une carte correspondant à la première ligne de ma base de données (id=1). La requête serait donc celle ci: Citation:
Et ainsi de suite. Comme dans un tas de carte, tu pioches la première carte puis tu la remets en dessous. Voila j'espère avoir été plus claire |
|
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 16 ![]() |
Dernière précision ma base de données est enregistrée dans mysql
|
|
|
00
|
|
|
#7 | ||
![]() ![]() |
OK je comprends mieux.
Au Monopoly, on mélange les cartes avant le début de la partie, celles-ci n'ont donc pas toujours le même ordre et ta colonne d'identifiant n'est pas suffisante pour déterminer un ordre à chaque partie. Ce que tu peux faire, c'est ajouter une colonne booléenne qui indiquera si la carte a déjà été tirée et mettre un ordre aléatoire à ta requête : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
10
|
|
|
#8 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Oublie cette méthode.
Regarde en PHP comment : - Créer une variable de session persistante (ou une variable d'application, si plusieurs personnes peuvent jouer ensemble) - Créer un objet "pile" de type FIFO Ensuite, tu crées un objet pile FIFO en variable de session ou d'application, et au démarrage de la session ou de l'application, tu charges ta table dedans, en faisant un "order by rand(0)". Là, tu auras dans on objet l'ensemble des cartes mélangées à chaque partie d'une façon différente. Ensuite, tu n'auras plus qu'à piocher dedans (vraissemblablement une méthode "pop()"), avant de la remettre au fond du tas, avec une méthode "push()"). Attention, certaines cartes ne sont pas toujours remises dans le tas immédiatement (cartes "sortie de prison" par exemple). Je te conseille de déplacer ton topic vers la catégorie PHP. En SGBD pur et dur, je doute que tu arrives à quelque-chose d'utilisable/viable, même si tu te lances dans une usine à gaz. -- Edit : Ca, c'était pour les cartes style "caisse de communauté" ou "chance". Pour les cartes de propriété, alors c'est plus ou moins identique : - Une variable de session/application qui contient au début de la partie toutes les cartes de propriété. - Un indexeur dessus pour retrouver facilement une carte (et si elle est présente) - La même variable pour chaque joueur, initialisée à vide - Et quand un joueur tombe sur une case propriété, tu n'as plus qu'à rechercher la carte dans le deck de la pioche (et proposer à l'achat si elle est trouvée), ou dans les decks des autres joueurs (et inviter à payer le loyer), ou dans le deck du joueur (et proposer d'acheter des maisons si c'est possible). A nouveau, en base de données, tu vas plus t'embêter qu'autre chose. La BDD sera très bien pour stocker une image du jeu "dans sa boîte", mais dès qu'une partie commence, ce sera à la fois plus simple et plus performant de travailler en mémoire avec des variables de session/application. D'autant qu'avec une structure en base de données, ça va vite être la galère pour gérer plusieurs parties en même temps. C'est en tout cas la méthode que j'utiliserais. |
|
|
10
|
|
|
#9 |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 16 ![]() |
Mercii beaucoup beaucoup pour vos réponses je vais voir ça
Bonne journée à vous |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com