JeuWeb - Crée ton jeu par navigateur
Jeu Monopoly, Structure BDD - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Jeu Monopoly, Structure BDD (/showthread.php?tid=2283)



Jeu Monopoly, Structure BDD - pollop - 14-01-2008

Bonsoir tout le monde Smile

J'ai dans l'idée de créer une sorte de monopoly en ligne.

Et je cale un peu au niveau de la structure de ma base de données...

Personnellement j'imaginais une table de ce style :

Table Parties
Champs :
- ID
- EtatCase1
- EtatCase2
- EtatCase3
- EtatCase4
- EtatCase5
- EtatCase6
- ...
- EtatCase40

Seulement n'est ce pas mauvais d'avoir une table avec + de 40 champs ?

Je m'arrangerais pour avoir assez avec un champs par case pour y stoquer mes infos.

Genre si pour chaque case je doit savoir à qui elle appartiens et combien de maison il y a, je stoquerais dans ma table id_du_joueur,nbr_de_maison

Et en jouant avec la partie entière et décimale je pourrais avoir mes infos.

Qu'en pensez-vous ? Y a t il plus simple ?

Merci Smile


RE: Jeu Monopoly, Structure BDD - Michu - 14-01-2008

Oui, fait plutot quelques champs avec 40 enregistrements,

ex :

id_case | nom_case | proprietaire | nb_hotel | prix | etc...
01 | Rue trucmuche | Ricard Bob | 0 | 100 |
[...]
40 | Rue de la paix | Zazie | 1 | 100 000

;p


RE: Jeu Monopoly, Structure BDD - Sephi-Chan - 15-01-2008

Ce que je propose (je ne mets que les champs qui me sont utiles dans l'exemple) :

Une table joueur :
id_joueur
nom_joueur

Une table partie :
id_partie

Une table joueur_joue_partie :
id_joueur
id_partie

Cette table indique : tel joueur joue dans tel partie. Cela permet au joueurs de disputer plusieurs parties simultanément.

Une table cases :
id_case
nom_case
couleur_case
prix_case
id_groupe
prix_1_maison
prix_2_maisons
prix_3_maisons
prix_4_maisons
prix_5_maisons

Cette table stock les différentes cases du plateau avec les informations relatives à chacune. Pour les gares et les cases spéciales, tu ne mets rien dans les champs qui indiquent le prix pour le nombre de maisons.

Une table groupe :
id_groupe
nom_groupe

L'id de groupe permet de regrouper les cases, les gares avec les gares, les compagnie d'électricité et eau, les rouges avec les rouges, etc.


Une table joueur_sur_case_dans_partie
id_case
id_joueur
id_partie

Cette table indique l'emplacement (id_case) du joueur (id_joueur) dans la partie (id_partie).

Ensuite, tu peux faire des tables comme :

joueur_a_case_dans_partie
id_case
id_joueur
id_partie
nombre_maisons
hypotheque

Cette table indique à qui appartiennent les cases dans la partie donnée, avec le nombre de maisons qu'il y a dessus. On met un champ qui dit si la propriété est hypothéquée ou pas, si oui, on met un 1 dans le champ, sinon, un 0.


Voilà, il manque probablement quelques trucs, mais c'est comme ça que je vois la chose.


Sephi-Chan


RE: Jeu Monopoly, Structure BDD - pollop - 15-01-2008

Merci beaucoup pour toute vos réponses, je commence à voir comment je vais procéder Smile

Je pense que je vais +/- prendre la solution de Sephi-Chan.

Mais il y a certaine chose que je ne comprend pas :S

Pourquoi y a t il une table joueur et une table joueur_joue_partie ? Je pense que je vais les fusionner
Je ne comprend pas bien à quoi sert la table groupe. :S

Voilà comment je compte faire :

Joueur
id
nom
id_de_la_partie_jouee
argent
emplacement (numéro de la case sur laquelle il est)
...

Parties
id
mdp (pour que l'on puisse continuer une ancienne partie)
maison_restantes
hotel_restant
argent_restant
...

Cases
id (id de la case)
nom
couleur/image
action (ici je mettrai un numéro qui correspond à quoi sert la case genre 1=maison / 2=carte chance / 3= carte communautaire)
prix_terrain (seulement si action = 1)
prix_maison (seulement si action = 1)
prix_loyer (seulement si action = 1)
...

Appartenance
id
id_partie
id_joueur
id_case
nombre_maison
hypotheque (boolean)
...

Qu'en pensez-vous ? Big Grin

@oxman : Ton idée avait l'air chouette, j'ai appris l'existence des classe il y a peu Smile
Mais cette technique ne me permet pas de stoquer les données :S

Edit : J'ai une autre petite question, je comptais réaliser le plateau de jeu avec un immense tableau...

Code :
<table border="1">
    <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr>
    <tr><td>40</td><td colspan="9" rowspan="9">Vide</td><td>12</td></tr>
    <tr><td>39</td><td>13</td></tr>
    <tr><td>38</td><td>14</td></tr>
    <tr><td>37</td><td>15</td></tr>
    <tr><td>36</td><td>16</td></tr>
    <tr><td>35</td><td>17</td></tr>
    <tr><td>34</td><td>18</td></tr>
    <tr><td>33</td><td>19</td></tr>
    <tr><td>32</td><td>20</td></tr>
    <tr><td>31</td><td>30</td><td>29</td><td>28</td><td>27</td><td>26</td><td>25</td><td>24</td><td>23</td><td>22</td><td>21</td></tr>
</table>

Qu'en pensez-vous ?