Combien de forme peut-on interconnecter?

Fermé
frienky95 - 26 mars 2013 à 22:06
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 27 mars 2013 à 07:27
Bonsoir tout le monde! Je vous sollicite car mon problème, bien que grandement simple au premier abord, est en fait, carrément lourd!!

Alors je suis étudiant, et pour un projet, je dois réaliser un jeu de conquête. Qui dit jeu de conquête dit gestion de ressources, de soldats, des combats, et des maps.
C'est ce dernier point qui me pose problème :
une map est représenté globalement par un certain nombre de territoire, région, partition, vous lui donnez le nom que vous voulez, avec pour lien entre eux les frontières qu'ils ont avec chacun! Jusque là me diriez vous, rien de bien méchant, un simple graphe suffit et hop basta!, le pire arrive maintenant quand on me dit que les maps peuvent être gérées aléatoirement...
vous ne voyez pas le problème? Le voici (attention il y a une gymnastique logique à faire) :

- en théorie, le nombre de frontière qu'un territoire peut avoir est illimité, (bien sur pour les besoins du jeu, ce ne sera pas le cas) et tous les territoires peuvent être connecté avec qui ils le veulent, jusque la pas de problème. Hors lorsque l'on passe à pratique, un problème se pose, je vous conseil un dessin pour visualiser la chose, le problème vient du fait qu'au delà de 5 territoires, on ne peut pas les connecter tous entre eux (qu'en gros chaque territoire puisse avoir une connexion avec tous les autres) hors, une fois cela remarqué, la représentation est rapide dans sa tête, mais en terme de code.... c'est une autre paire de manche!!!! car pour une petite map de 5 territoire c'est pas compliqué mais imaginons 16 territoires... ça se complique.

Voilà voilà, si vous avez compris le Shmilblick et que vous viens une solution je plussois que vous me la donniez!! :):)

bonne soirée a vous et je vous remercie d'avance pour votre générosité!!

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
26 mars 2013 à 22:14
Et quelle est la question ?

Tu veux savoir comment positionner 5 territoires pour qu'ils soient tous reliés les uns aux autres ? Tu ne peux pas ! Je te laisse regarder le théorèmes des quatre couleurs.
0
frienky95 Messages postés 3 Date d'inscription mardi 26 mars 2013 Statut Membre Dernière intervention 3 octobre 2013
26 mars 2013 à 22:29
non justement je sais qu'on ne peut pas, ce que je voudrais c'est le programmer... ce qui est moins simple mais je vais lire tout de même on en sais jamais^^ merci parce que justement je le cherchait ce théorème!!!
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
26 mars 2013 à 22:47
Je n'ai toujours pas compris ce que tu voulais programmer...
0
frienky95 Messages postés 3 Date d'inscription mardi 26 mars 2013 Statut Membre Dernière intervention 3 octobre 2013
27 mars 2013 à 00:32
encore une fois je me suis fais trollé par le site xD!! cette fois ci ça m'apprendra à appuyer sur les mauvais bouton!! en fait je ne sais même pas ce que je veux faire... je patauge dans la semoule!! xD, Bon en gros, je voudrais faire un graphe non-orienté pondéré dont chaque point représente un territoire, sachant, du coup que chaque groupe de 5 points ou plus ne peuvent pas tous êtres relier entre eux, ma solution de départ était la quivante

- à chaque fois qu'on créer un nouveau point, dès qu'on veut le connecter à plus de 5points, on test chacun des points par groupes de 4 pour voir qu'il ne sont pas connecté entre eux, et si c'est effectivement le cas on choisi au hasard l'un des 4 et ont le vire des points à rattacher aux autres mais bon ça me parait franchement super lourd et vachement pas optimisé!!
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
27 mars 2013 à 07:27
Si je comprends ce que tu veux. Voici une méthode :

Le principe :
Tu places aléatoirement sur ta carte autant de noeuds que tu ne veux de pays. Puis tu considère tous les noeuds en même temps et tu les "grossis" progressivement comme des bulles de savon.
Quand deux bulles se "touchent" tu crées une frontière entre les deux noeuds. puis tu continues ton expansion pour trouver de nouvelles frontières entre les autres noeuds. Sachant que tu ne peux pas mettre de nouvelle frontière à l'intérieur d'une bulle déjà existante.
Une fois que toutes les bulles ont dépassés la taille de la carte, tu es sûr que toutes les frontières ont été trouvées.

L'algorithme :
Tu devras calculer la distance entre chaque couple de noeuds pour déterminer les frontières possibles. Puis tu tries ces distances par ordre croissant pour simuler l'expansion de mes bulles. Tu considères les frontières potentielles les unes après les autres. Et tu calcules si elle est à l'intérieur d'une bulle ou non afin de créer une arête entre les deux noeuds concernés.
0