Un jeu de reflexion en Flash

Ce jeu fait partie de la saga des Graphes. Voir les liens dans le menu à droite pour plus de détails

Le résultat

Fichier Flash :

Installez le plugin Flash pour voir l'animation : Cliquez ici pour le télécharger

Images

Passez votre souris par dessus une image pour l'afficher.

Version α

Capture de B-Graphe Capture de B-Graphe


Capture de B-Graphe

Version β

Capture de B-Graphe Capture de B-Graphe

Version Release Candidate

Capture de B-Graphe Capture de B-Graphe


Capture de B-Graphe

Version Release Candidate 2

BGraphe a rencontré un problème important dans sa version RC1 : le jeu crashait sous Internet Explorer, sur plateforme Vista. Après modification du code, il s'est avéré que le problème venait d'une trop grosse utilisation des filtres...bref, ré-optimisation globale du jeu.

Capture de B-Graphe Capture de B-Graphe


Capture de B-Graphe

Fond retenu

Fond retenu pour l'application (B-Graphe ArtWork)

Explications

Règle du jeu

Un exemple de graphe standard transformé en graphe planaire

La règle de B-Graphe est extrêmement simple : il faut et il suffit de supprimer toutes les intersections entre les lignes. Pour cela, il faut agir sur les noeuds (representés par un rond). Rien de bien compliqué...et pourtant !

Les arêtes en rouge sont les arêtes avec une intersection, il faut les corriger.

A propos du concept

K5K3,3Ce jeu utilise un graphe non-orienté, et cherche à le representer sous forme planaire.
Le concept est extrêmement simple, mais la solution n'est pas toujours facile, loin de là !

D'un point de vue mathématique, deux algorithmes «connus» permettant de déterminer la planarité d'un graphe. L'un deux, relativement simple à comprendre, se limite à montrer que le graphe n'est une expansion ni de K5, ni de K3,3 (les deux graphes représentés ci-contre). Pour des explications plus mathématiques, je vous invite à consulter cette page.

Estimation de la complexité

Un mini algorithme tente d'attribuer à chaque niveau une complexité. Cette complexité est calculée de façon très empirique. Elle prend en compte le nombre de noeuds, mais aussi le nombre moyen d'arcs par sommet, et attribue un bonus aux niveaux ayant un fort ratio :
\(\frac{3}{2} * \frac{Nb_{Liens}}{Nb_{Noeuds}} + \frac{Nb_{Noeuds}}{35} + \frac{Nb_{Liens}}{30} + \frac{1}{5}*(\frac{Nb_{Liens}}{2.2} - Nb_{Noeuds})'\)

Mods

Création de niveau

B-Graphe inclut un éditeur de niveaux.
Pour comprendre son fonctionnement, il faut d'abord comprendre le fonctionnement du moteur interne :
Chaque niveau est défini, non par des noeuds, mais par des liens, un lien englobant deux noeuds.
Le moteur interne détermine de lui même le nombre de noeuds (en trouvant le maximum dans les couples de noeuds). Une fois ce maximum trouvé, tous les noeuds sont générés, et le moteur parcourt le tableau des liens et les ajoute graphiquement.
Enfin, les noeuds sont placés de façon aléatoire (autour d'un cercle), et affichés à l'écran.

Pour l'éditeur, cela signifie qu'il suffit juste d'indiquer les couples, tout le reste étant géré de façon interne.
Un couple, comme dit plus haut, est défini par deux noeuds. On prend pour convention de séparer ces deux noeuds par une virgule «,». Les couples sont séparés par un « | » pipe (alt gr + 6 sur un clavier franco belge).
Dernière convention, la liste des noeuds commence à 0.

Un exemple concret pour mettre tout cela en pratique :
Un exemple de niveauPour réaliser le graphe ci contre, on utilisera donc ce code : 1,2|1,5|2,3|3,4|4,5|4,6.

Que remarque-t-on ? Même si aucun lien ne pointait vers 0, un noeud n°0 a quand même été crée, et n'est rattaché à aucun autre. Les plus assidus remarqueront qu'en chargant deux fois le niveau, ils obtiennent deux configurations différentes...normal, puisque l'ordre des noeuds est recalculé aléatoirement à chaque fois.

Téléchargement

Dernière version :

Voir le fichier SWF, et le code.

Sauvegardes

Les sauvegardes sont réalisées sur une base plus ou moins régulière, lorsque le code a été amélioré significativement depuis la sauvegarde précedente.

Historique des versions

Statistiques...

Player count : (non disponible)

Le code

À propos du code

Le code est réparti en classes claires et nettes.
L'ensemble du fichier représente moins de 10ko !

Afin d'éviter l'engorgement du serveur, le code a été décentralisé sur une page externe.

Solution de Bgraphe

Pour les plus frustrés, la solution est disponible sur ce serveur...
Mais je n'allais pas non plus la marquer directement ! Regardez un peu le code source de cette page...ou sinon, trouvez l'URL ! Ce n'est pas bien dur, je vous rassure...
Ces solutions ne vous seront pas forcément utiles, puisque les noeuds n'ont pas de numéros...mais si cela vous fait plaisir !

Auteur
Neamar
Date
Aout 2008
But
Démêler les nœuds
Voir aussi
Jeux de graphe
Menu
Index des ressources

Chargement du sommaire...