Aller au contenu

Modélisation système inhabituel


Axe

Sujets conseillés

Bonjour,

comment modéliser un tel* système de manière logique afin de l'intégrer dans une base de données ?

* Suit un lien vers le domaine de gestion en question : il s'agit de chemins point à point, chaque point pouvant être d'un certain type, avoir certaines caractéristiques au-delà de son type (héritage), être un carrefour/point de liaison avec un ou plusieurs autres points.

http://www.ffworld.com/?page=imageℑ=i...rier-expert.jpg

Le lien ce-dessus pointe vers une image qui illustre le "sphérier" d'un jeu connu; à savoir que ce qui m'interesse n'est pas ce sphérier en question, mais il ressemble de près au système que je voudrais créer.

Peut-être qu'une étude sur la modélisation des trajets de transport (ex : calcul itinéraires de bus/modélisation rues & arrêts, placement des lignes) pourraient m'être d'un certain secours ?

Considérations techniques : j'ai l'habitude de la méthode Merise, et j'utilise MySQL/sqlite

Merci pour vos éclaircissements

Lien vers le commentaire
Partager sur d’autres sites

En fait, pour faire une ébauche pour un projet tel que celui ci, il faudrait comprendre parfaitement le sujet. Savoir à quoi sert tel et tel point, connaitre la raison des traits entre les points, connaitre les réactions des uns par rapport aux autres, etc, etc.

Autrement dit :

Désolé, mais c'est un joli dessin. Qu'est ce qu'il fait ?

Lien vers le commentaire
Partager sur d’autres sites

Peu importe ces considérations, la difficultés vient de l'organisation des chemins; j'improvise :

réduisons la complexité des points à 2 caractéristiques :

chaque point correspond à un type de point

chaque point a une couleur

simplifions la notion de chemins :

les chemins entre les points sont tous de longueur 1

pas de différence entre les chemins courbes, ceux en ligne droite, etc.

Comment modéliser cela pour permettre par exemple à un pion d'évoluer dans cette organisation, se déplacant de point en point en passant par les chemins ?

Lien vers le commentaire
Partager sur d’autres sites

Tu peux le faire avec un tableau, par exemple. C'est plus visuel, plus simple à appréhender qu'avec une base de données. Donc:

Imagines une feuille quadrillée. Tu laisses en blanc tous les chemins, et tu mets en noir tout le reste. ll ne te reste donc plus que les chemins sur la feuille.

Sur une autre feuille transparente, avec le même quadrillage, tu places les pions. Chaque pion doit être sur du blanc, donc doit avoir des routes d'où en venir, et où en partir.

Tu te retrouves avec une simulation de carte routière. Celle ci dit :

Pour le pion placé en F5, voir s'il y a une route en E4, E5, E6, F4,F6, G4, G5, G6.

Imaginons qu'il y ait une route en E4, tu peux te déplacer par là, et rejoindre ainsi la ville, le pion suivant.

Pour finir, il suffit de considérer, par rapport au blanc et au noir, que le blanc est initialisé à 1, et le noir à 0, et le tour est joué.

Voilà (en gros...)

Lien vers le commentaire
Partager sur d’autres sites

Merci Anonymous.

Okay : étape 2

[!] Avec ce quadrillage, faire attention à ce qu'il y ait 1,n chemin(s) entre chaque point.

Allons plus loin, je donne 2 propriétés aux points :

couleur - enum('bleu','vert','rouge')

importance - int

Pour les chemins, si je leur donne une propriété

longueur - int

Je peux calculer la distance entre 2 points adjacents/limitrophes en prenant la longueur du chemin qui les sépare, ce chemin est une case entre ces 2 points.

Je peux calculer la distance entre 2 points éloignés en additionnant la longueur de tous les chemins qui se trouvent entre eux.

Calculer ici le chemin le + court ne m'interesse pas, si j'en ai besoin je ressors mes cours de maths et ne fait pas perdre de temps à mes lecteurs.

Si jusqu'ici il n'y à rien à redire, tout le monde suit, que je n'ai pas fait d'erreur, je me permet de vous proposer

L'étape 3

Complexifions la notion de chemins pour en permettre 6 types :

horizontal

vertical

courbe/virage de gauche à haut

courbe/virage de haut à droite

courbe/virage de droite à bas

courbe/virage de bas à gauche

Arrêtons-nous ici pour cette fois; ce que je demande :

1- est-ce que ce que j'ai dit dans ce post est correct (étape 2) ?

2- y a t-il des moyens simples, des astuces à connaître, pour gérer ces chemins de traverse (étape 3) ?

Merci

Modifié par Axe
Lien vers le commentaire
Partager sur d’autres sites

A priori, c'est comme ca que je ferais.

Le tableau, bien contruit, te donne d'emblée l'étape 3.

Pour une matrice A1 => C3

Si on ajoute ou soustrait 1, c'est une droite,

Si on ajoute ou soustrait une lettre, c'est que l'on monte ou descend.

Si l'on fait les 2, c'est que l'on prend une courbe.

A noter que le php permet de faire des opérations mathématiques sur les lettres.

Essaies :

<?

$lettre = "a";

$lettre +=5;

echo $lettre;

Devrait/doit t'afficher une lettre, d'un écart de 5 par rapport à la position actuelle de $lettre, par rapport donc à 'a'.

Beaucoup plus facile pour la matrice ;)

Lien vers le commentaire
Partager sur d’autres sites

J'ai préféré une matrice, un quadrillage numéroté plutot que des lettres, ça donne

$M[$y][$x]

Il a 3 types de cases : vides, un item, ou un chemin.

Il y a 6 types de chemins : vertical, horizontal, et les 4 virages.

J'en suis à calculer les possibilités pour un pion de se déplacer d'item en item par les chemins, bloqué sur une fonction récursive qui boucle à l'infini :P

Lien vers le commentaire
Partager sur d’autres sites

Pour ce qui est des lettres au lieu des chiffres, c'etait plus pour que tu aies une visualisation type 'bataille navale', pas pour que tu adoptes cette méthode, qui n'est pas adaptée, effectivement.

Pour ta fonction récursive, tu peux la mettre, on verra ce que l'on peut faire ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...