jQuery
En savoir plus
Adobe Flex & Flash
En savoir plus
ASP.NET
En savoir plus

Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !
| Page 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Auteur | Message | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Page 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zozor
|
# Posté le 22/12/2008 à 20:01:55 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hiii Haaan !![]() Groupe : Mascotte
|
![]() Bonjour à tous ! C'est les vacances, autant en profiter. Comme ce concours n'est pas noté, et qu'il propose un sujet intéressant, il est assez tentant de s'y pencher... d'ailleurs c'est ce que j'ai fait. ![]() En plus, il y a généralement peu de codes écrits en OCaml... donc cette contribution pourra servir d'exemple à ceux qui veulent s'y mettre. Elle permet d'ailleurs d'illustrer l'utilisation de LablGTK, ainsi que d'autres choses plus ou moins importantes :
Bon, assez de paroles ! Venons-en aux faits. IntroductionJ'ai choisi de n'implémenter qu'une partie des fonctionnalités présentées sur la page principale du concours et, en toute franchise, je n'ai pas l'intention d'en faire plus (c'est pour moi un « projet-jouet » pour m'amuser, auquel je ne peux pas consacrer tout le temps que je voudrais). Concrètement, voici ce que fait ce programme :
Caractéristiques du programmeNomCe programme s'appelle MazeML, nom composé du mot anglais maze, qui signifie labyrinthe, et du suffixe ML, pour rappeler qu'il a été écrit en OCaml. LicenceMazeML est distribué sous les termes de la licence GNU GPL v3. Une copie est incluse dans l'archive contenant les sources. LabyrinthesMazeML permet de dessiner des labyrinthes de 4x4 à 240x390 cases. Ces limites sont imposées par la taille réduite de la zone de dessin (fixe... on peut envisager de la rendre redimensionnable, et permettre ainsi de tracer de plus gros labyrinthes, mais je ne le ferai pas). Remarque : depuis la version 1.8, l'option --without-gui permet de créer et d'exporter de gros labyrinthes (testé jusqu'à 700x700 cases) au format PNG. Il s'agit surtout d'une fonctionnalité pour le fun car l'export au format PNG est très lent et GtkDrawable n'est pas l'outil le plus approprié pour des dessins de cette envergure. De toutes façons, le programme échoue dès 800x800 avec un bel Out of memory. AlgorithmeMazeML crée des labyrinthes grâce à l'algorithme d'exploration exhaustive. Les informations de backtracking sont stockées au fur et à mesure de la progression. Il est alors possible d'écrire une fonction récursive terminale, ce qui évite les débordements de pile pour de gros labyrinthes. Remarque : Il existe bien entendu de nombreux autres algorithmes plus ou moins efficaces pour créer des labyrinthes (avec un biais plus ou moins prononcé). Il est sans doute intéressant d'en implémenter plusieurs et de les comparer, mais je ne le ferai pas. Résolution du labyrintheL'algorithme d'exploration exhaustive crée des labyrinthes parfaits. Il n'existe donc qu'un seul chemin pour aller de la case de départ à la case d'arrivée (où qu'elles soient placées). Par conséquent, on peut exploiter astucieusement les données de backtracking pour calculer la solution en même temps que la création du labyrinthe, sans utiliser d'algorithme dédié. Affichage des labyrinthesMazeML affiche les labyrinthes avec les outils de base que sont GtkDrawable et GtkPixmap (pas d'OpenGL ou de bibliothèque spécialisée). Il s'agit d'une certaine façon d'utiliser des fonctions comparables à celles du module Graphics de la bibliothèque standard d'OCaml. Voici un exemple de tracé : ![]() ImplémentationLes labyrinthes sont représentés par des tableaux de type Bigarray à une dimension, composés d'entiers non signés codés sur 8 bits. Chaque case du labyrinthe est ainsi codée par un octet. Plus précisément :
Remarque : Les données de backtracking sont effacées dès qu'elles ont été utilisées, sauf si elles font partie du chemin qui relie la case de départ (arbitrairement placée en haut à gauche) à la case d'arrivée (arbitrairement placée en bas à droite). Découpage en modulesMazeML est organisé en plusieurs modules relativement indépendants les uns des autres. Ce sont :
BenchmarkL'implémentation proposée ici a été testée, sans affichage, bien au-delà des limites de MazeML, sur des labyrinthes jusqu'à 15000 cases de côté. Comme il est souvent délicat de tirer une information fiable d'un benchmark, je donne les temps de calcul moyens (10 mesures par taille de labyrinthe) obtenus sur deux machines très différentes (un PC portable assez ancien et un PC de bureau récent) pour 11 tailles de labyrinthes. Edit: La version 1.9 introduit une nouvelle optimisation (retrait de la conversion de la liste des directions en tableau) qui a permis de gagner quelques secondes sur les gros labyrinthes (jusqu'à 20 secondes pour le 15000 x 15000 avec le PC Acer Aspire). L'effet est quasi imperceptible pour les petits labyrinthes (ceux que MazeML est capable d'afficher).
Pour reproduire ces résultats sur votre machine, il suffit de compiler séparément le module Maze . Pour cela, ajoutez le point d'entrée suivant dans maze.ml : Code : OCaml
puis compilez et exécutez en utilisant la commande suivante : Code : Console
Manipulation en ligne de commandeMazeML est en partie configurable en ligne de commande (vous pouvez obtenir la liste complète des options reconnues grâce à -help). Voici les principales options reconnues : -rows n : Nombre de lignes. -cols n : Nombre de colonnes. -wall #RRGGBB : Couleur des murs du labyrinthe. -cell #RRGGBB : Couleur des cases de la solution. Édition de labyrinthesC'est un point qui m'intéresse parce qu'il permet d'illustrer l'efficacité des fonctions de type Bigarray.Array1.map_file . MazeML les exploite bien entendu. Il enregistre et charge des labyrinthes stockés dans un simple fichier texte (jeu de caractères ISO-8859-15). Celui-ci se présente sous la forme : Code : Autre
De façon très générale, pour un labyrinthe de n lignes et c colonnes, la taille du fichier est de nc + 20 octets (ces 20 octets servent pour ROWS et COLS comme indiqué plus haut). ExportMazeML propose d'exporter les labyrinthes au format PNG (avec transparence) ou JPEG. L'export s'effectue avec ou sans la solution du labyrinthe, selon ce qui est affiché à l'écran. Remarque : La couleur rendue transparente peut être modifiée en ligne de commande. Construction pas à pasLa version 1.7 de MazeML introduit une nouvelle fonctionnalité : la construction pas à pas des labyrinthes. Pour tester cette fonction, vous devez lancer le logiciel avec l'option -interactive. Vous pouvez régler la vitesse des animations avec l'option -rate n où n désigne le nombre de millisecondes qui sépare deux tracés. Voici une illustration de cette fonctionnalité : ![]() Remarque : Cette fonctionnalité n'est pas disponible pour les labyrinthes chargés à partir d'un fichier, car les informations de backtracking nécessaires à l'animation sont perdues lors de l'enregistrement. Historique des versionsVersion 1.0 Première version proposée sur le SdZ. Version 1.1 Optimisation selon les résultats du profiling (gprof). Version 1.2 Simplification de la mise en mémoire de la solution. Version 1.3 Meilleur affichage du chemin solution (tracé continu). Version 1.4 Abandon des modifications de 1.3, utilisation de Bigarray . Version 1.5 Export au format PNG (avec transparence) ou JPEG. Version 1.6 Tracé continu du chemin solution (restauration de 1.3). Version 1.7 MazeML peut désormais construire pas à pas un labyrinthe. Version 1.8 Export de gros labyrinthes avec --without-gui. Version 1.9 Nouvelle optimisation du module Maze (visible sur benchmark). LiensSources et exécutablesMazeML 1.9 sources OCaml MazeML 1.9 code natif GNU/Linux MazeML 1.7 bytecode Windows Quelques labyrinthes obtenus avec --without-guiLabyrinthe 300x300 Labyrinthe 400x400 Labyrinthe 500x500 Labyrinthe 600x600 Labyrinthe 700x700 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Publicité | # Posté le 22/12/2008 à 20:01:55 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacophrene
|
# Posté le 01/01/2009 à 19:54:37 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est vraiment TeX-TuX![]()
Ville : Le cannet |
Bonjour à tous !
À quelques petites choses près (des détails dans le code, et un peu de documentation à ajouter), ce que je voulais faire dans le temps que je peux consacrer à ce concours est fait. MazeML est un programme publié sous les termes de la licence GNU GPL version 3 (une copie est incluse dans les sources). Il est conçu pour :
Ambition affichée : faire un programme en OCaml puisque ce concours le permet, qu'on n'a pas trop l'occasion d'en voir (même s'il en existe de fameux), et que des sujets sont régulièrement postés sur les forums du SdZ à propos de ce langage fonctionnel. Voilà tout ! Permettez-moi de vous souhaiter à tous une bonne année 2009. Cordialement, Cacophrène zCoach OCaml, LablGTK Mini-tuto - Introduction à LablGTK ; Mini-tuto - Introduction au dialogue C/OCaml ; OCamlBoggle - Boggle Solver ; MazeML - Labyrinthes ; OCamlTeX - Éditeur LaTeX (en cours) ; Blog - OCaml de pied en cap |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IATGOF
|
# Posté le 02/01/2009 à 01:51:10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
Études : Epitech Bordeaux |
Est-ce que quelqu'un peux compiler pour windows (si le projet est portable)? N'ayant pas de linux sous la main et ne sachant pas compiler du OCaml, je ne peux pas tester.
Dommage, les screens donnent vraiment envie, ça a l'air d'être du beau boulot
Édité
le 02/01/2009 à 01:53:25
par IATGOF
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacophrene
|
# Posté le 02/01/2009 à 08:16:30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est vraiment TeX-TuX![]()
Ville : Le cannet |
Salut !
Code natif : Ce projet ne devrait pas poser de problème à la compilation sous Windows. Hélas, je n'utilise pas ce système d'exploitation, je ne peux donc pas le faire moi-même D'ailleurs, si quelqu'un veut bien m'aider à combler cette lacune, je lui serai très reconnaissant.Bytecode : Je vais créer un lien vers le programme compilé en bytecode. Pour tester, il suffit donc d'installer OCaml (voir ici) puis lancer : Code : Console
Les options restent les mêmes que dans la fiche de description. En revanche, les performances obtenues ne seront en rien comparables avec ce qui est annoncé. Edit : Une version bytecode est désormais proposée en téléchargement. Suivre les indications données dans ce message pour tester sous Windows... en attendant mieux. Cordialement, Cacophrène
Édité
le 02/01/2009 à 08:27:02
par Cacophrene
zCoach OCaml, LablGTK Mini-tuto - Introduction à LablGTK ; Mini-tuto - Introduction au dialogue C/OCaml ; OCamlBoggle - Boggle Solver ; MazeML - Labyrinthes ; OCamlTeX - Éditeur LaTeX (en cours) ; Blog - OCaml de pied en cap |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zopieux
|
# Posté le 04/01/2009 à 12:17:48 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mhg n pryhv dhv zr yvg Groupe : Interdiction d'écriture
|
Sûrement l'un des projets les plus prometteurs que j'ai pu voir.
Bonne continuation, tu as réalisé là quelque chose de fort. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacophrene
|
# Posté le 04/01/2009 à 14:45:20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est vraiment TeX-TuX![]()
Ville : Le cannet |
Salut !
Merci pour ce message encourageant. Hélas je ne crois pas que ce projet évolue encore dans les jours à venir. Les vacances se terminent et, avec elles, une bonne partie du temps disponible pour le continuer. Je sais bien que la fin du concours n'est pas pour tout de suite (il reste un peu moins d'un mois), mais je ne pense pas pouvoir faire autre chose que réécrire/commenter ponctuellement certains points du code source. Je considère donc la version 1.8 comme version finale. Le tout dernier ajout (--without-gui) est juste là pour le fun. Aucune nouvelle fonctionnalité n'est prévue (pas d'OpenGL, pas de possibilité de jouer, pas de labyrinthes circulaires, etc.), et tel quel, il fournit un exemple un peu plus « grandeur nature » pour le tutoriel sur LablGTK que ce qu'on peut y trouver. Cordialement, Cacophrène zCoach OCaml, LablGTK Mini-tuto - Introduction à LablGTK ; Mini-tuto - Introduction au dialogue C/OCaml ; OCamlBoggle - Boggle Solver ; MazeML - Labyrinthes ; OCamlTeX - Éditeur LaTeX (en cours) ; Blog - OCaml de pied en cap |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IATGOF
|
# Posté le 05/01/2009 à 16:12:56 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
Études : Epitech Bordeaux |
Salut, j'ai finalement testé sous Ubuntu (flemme d'installer Ocaml sous Windows) et à vrai dire je suis impressionné par ce boulot.
En effet, la vitesse d'exécution est remarquable et l'interface est particulièrement plaisante. Bref, j'adore (dommage cependant que personne ne puis compiler sous windows )Franchement, je te dit bravo pour ton travail ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacophrene
|
# Posté le 05/01/2009 à 19:43:14 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est vraiment TeX-TuX![]()
Ville : Le cannet |
Salut !
Merci pour ton commentaire, IATGOF. J'essaie toujours de trouver quelqu'un qui a Windows et OCaml, mais c'est hélas difficile à trouver (Windows n'est pas le meilleur système pour coder en OCaml). Pour bien faire, il faudrait que je songe à réinstaller un Windows en dual boot... mais bon, comment dire... Sinon, comme je bidouille un peu avec LablGL ces temps-ci, il y aura peut-être une ultime mise à jour qui remplacera GdkDrawable par de l'OpenGL, mais je ne promets rien. Pour les performances, on doit pouvoir aller encore plus vite en se tournant vers l'algorithme d'Eller, qui crée le labyrinthe ligne par ligne. En contrepartie cependant, la solution n'est plus obtenue « gratuitement » et il faut implémenter quelque chose exprès (et ce n'est pas prévu ).Vala vala. Cordialement, Cacophrène zCoach OCaml, LablGTK Mini-tuto - Introduction à LablGTK ; Mini-tuto - Introduction au dialogue C/OCaml ; OCamlBoggle - Boggle Solver ; MazeML - Labyrinthes ; OCamlTeX - Éditeur LaTeX (en cours) ; Blog - OCaml de pied en cap |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SirJulio
|
# Posté le 05/01/2009 à 20:23:40 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() Groupe : Anciens
|
Coucou,
tout d'abord bravo pour ton programme, c'est bien fait (je ne comprends pas grand chose au code, mais on sent que c'est maitrisé). Pour Eller, tu peux essayer de faire une resolution quasi-simultanée, (j'avais exploré l'idée, mais vu ma structure ca ne convenait pas) en suivant le set de l'entrée au fur et à mesure de la resolution jusqu'à l'avant derniere ligne (apres de tout facon la derniere lie le tout). Tu auras une solution à trou, que tu peux completer facilement avec des wall-followers localisés (tu isoles les deux bouts (meme set non contigues) et tu agrandis au besoin). En jouant sur le biais qu'introduit naturellement Eller (qui fait que plus le vecteur entrée-sortie est perpendiculaire au sens de la génération, moins tu auras de trou (statistiquement)), ca donnerait un truc pas mal, mais la on rentre dans l'overkill complet (mais c'est rigolo quand meme ! =p). NB : je ne sais meme pas si ce type de resolution est possible. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacophrene
|
# Posté le 05/01/2009 à 20:44:55 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est vraiment TeX-TuX![]()
Ville : Le cannet |
Salut !
Effectivement ce sont des idées intéressantes qui méritent d'être explorées. De mon côté j'ai choisi l'exploration exhaustive car c'était un des deux algorithmes décrits dans les liens de la page principale du concours... sans même chercher ailleurs. Et j'ai découvert l'existence de l'algorithme d'Eller grâce à MazeD ![]() Ceci dit je n'ai vraiment pas le temps de me pencher sur tout ça. Peut-être plus tard, en dehors de ce concours... Pour l'heure je ne touche plus au programme, car l'efficacité de l'implémentation avec Bigarray me satisfait. Le code lui-même est encore un peu « sale » par endroits (surtout dans Drawing), et il faut ajouter quelques commentaires. Sauf peut-être l'utilisation d'OpenGL, comme dit plus haut, rien de neuf n'est prévu. Cordialement, Cacophrène zCoach OCaml, LablGTK Mini-tuto - Introduction à LablGTK ; Mini-tuto - Introduction au dialogue C/OCaml ; OCamlBoggle - Boggle Solver ; MazeML - Labyrinthes ; OCamlTeX - Éditeur LaTeX (en cours) ; Blog - OCaml de pied en cap |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Squ@bad'
|
# Posté le 05/01/2009 à 21:04:33 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rock and roll !![]()
Études : Ecole Centrale de Marseille |
Hello
![]() D'après ce que je vois, et en comparant aux autres projets (le mien compris), je trouve ton programme très intéressant, performant, bien construit et esthétique ! Bravo et bon courage pour la suite
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bluestorm
|
# Posté le 09/01/2009 à 22:57:01 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dont ask to ask![]() Groupe : Anciens
|
Bon, j'ai jeté un coup d'oeil rapide, mais je suis assez impressionné.
Pour commencer, problème de packaging : ton .zip décompresse tout dans le répertoire courant, et ça c'est mal. Il faut mettre un dossier ! Ensuite, petit soucis à la compilation : - tu utilises Array1.unsafe_get qui est ocaml 3.11, je suis encore en 3.10. Il suffit de renommer pour que ça passe, mais sachant que la 3.11 est encore assez peu implantée (elle n'est pas encore dans GODI à ma connaissance, même si ça va arriver sous peu), si tu perds pas trop en perfs (j'en sais rien) tu devrais les virer. Il y a peut-être moyen de faire de la compilation conditionnelle avec camlp4. - le myocamlbuild met des flags natifs direct (-inline, etc), donc le "ocamlbuild mazeML.byte" se chie dessus. Je les ai virés pour compiler mais il doit y avoir une solution plus propre (je connais mal ocamlbuild). Il n'y a pas moyen d'utiliser un simple _tags, sinon ? Pour le code j'ai regardé très, très rapidement, lablgtk je connais pas donc plein d'objet un peu chiant à vue de nez (forcément coder une UI c'est pas le truc le plus passionnant du monde). Le code de mazeML fait très pro (genre le .mli et tout). Après, l'inlining à la main pour gagner en perfs c'est pas trop mon style, mais visiblement c'est l'état d'esprit général et ça reste plutôt propre alors pourquoi pas ![]() Une suggestion à la con (mais vraiment con) pour l'UI : actuellement quand on a demandé à voir la solution, et qu'on change la taille du labyrinthe, il redraw en remontrant la solution (logique). L'user pourrait avoir envie de regarder la solution, agrandir le labyrinthe et re-dessiner sans voir la solution, pour la chercher avant de l'afficher. Actuellement il doit faire "voir" puis "masquer" avant de re-générer pour ça, ce qui n'est pas forcément très pratique. Pourquoi pas une checkbox "cacher la solution au redraw" ? (Après il faut voir, si le compromis complexité/fonctionnalité de l'interface est intéressant, c'est pas sûr) J'étais content d'un projet pour montrer que OCaml c'est le bien, et celui-ci a la classe. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacophrene
|
# Posté le 10/01/2009 à 09:06:00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est vraiment TeX-TuX![]()
Ville : Le cannet |
Salut !
Citation : bluestorm Pour commencer, problème de packaging : ton .zip décompresse tout dans le répertoire courant, et ça c'est mal. Il faut mettre un dossier ! Je n'observe pas ce comportement de mon côté . Sous Ubuntu, l'entrée « Extraire ici » du menu contextuel me crée un répertoire MazeML-1.8 et extrait les fichiers dedans (et non dans le répertoire courant). Je suis désolé de voir que ça ne marche pas partout... Suffit-il que j'ajoute un répertoire principal à la racine pour résoudre le problème ?Edit: J'ai ajouté un répertoire parent. Il ne devrait donc plus y avoir de problème, quel que soit le logiciel utilisé pour décompresser l'archive. Citation : bluestorm tu utilises Array1.unsafe_get qui est ocaml 3.11, je suis encore en 3.10. Effectivement c'est une nouvelle fonctionnalité dans 3.11, et il y a une erreur dans mon fichier INSTALL qui devrait demander 3.11 ou ultérieur (et non 3.10.2). Je vais corriger ça. Sur le plan des perfs, je doute que les fonctions unsafe aient un impact très net sur la plage de valeurs possibles dans MazeML (maximum 240 x 390). Mais pour de gros labyrinthes comme ceux qui ont permis de faire le benchmark, ça doit être un peu différent. Au besoin je retire ces deux lignes de code. Edit: Je viens de créer la version 1.9. J'y précise comment remplacer les fonctions unsafe par leur équivalent safe pour compiler avec 3.10. J'ai également optimisé la fonction Maze.GoTo.rand pour un résultat assez net sur de gros labyrinthes (hors de la plage de valeurs de MazeML). Quant aux fonctions unsafe, elles font tout juste gagner une seconde pour 7000 x 7000. Donc aucun souci si on les enlève... Citation : bluestorm le myocamlbuild met des flags natifs direct (-inline, etc), donc le "ocamlbuild mazeML.byte" se chie dessus. Je les ai virés pour compiler mais il doit y avoir une solution plus propre (je connais mal ocamlbuild). Il n'y a pas moyen d'utiliser un simple _tags, sinon ? Arf, c'est parce que je n'ai jamais utilisé le bytecode pour ce programme . On doit pouvoir corriger tout ça et autoriser les deux versions, mais il faut que je consulte un peu la doc, car j'ai tendance à faire des copier/coller pour ces choses-là... Citation : bluestorm Une suggestion à la con (mais vraiment con) pour l'UI : actuellement quand on a demandé à voir la solution, et qu'on change la taille du labyrinthe, il redraw en remontrant la solution (logique). L'user pourrait avoir envie de regarder la solution, agrandir le labyrinthe et re-dessiner sans voir la solution, pour la chercher avant de l'afficher. Actuellement il doit faire "voir" puis "masquer" avant de re-générer pour ça, ce qui n'est pas forcément très pratique. Pourquoi pas une checkbox "cacher la solution au redraw" ? Ou alors faire sauter le toggle_button à chaque mise à jour pour que la solution ne soit affichée que si l'utilisateur le veut vraiment (en cliquant sur le bouton, donc). Qu'en penses-tu ? Edit: Je vais probablement faire une petite mise à jour qui tiendra compte de la plupart des suggestions demain (peut-être pas pour ocamlbuild... parce que je n'ai pas encore lu la doc ).Cordialement, Cacophrène
Édité
le 11/01/2009 à 14:16:29
par Cacophrene
zCoach OCaml, LablGTK Mini-tuto - Introduction à LablGTK ; Mini-tuto - Introduction au dialogue C/OCaml ; OCamlBoggle - Boggle Solver ; MazeML - Labyrinthes ; OCamlTeX - Éditeur LaTeX (en cours) ; Blog - OCaml de pied en cap |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacophrene
|
# Posté le 11/01/2009 à 20:30:20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est vraiment TeX-TuX![]()
Ville : Le cannet |
Bonjour à tous !
Je considère la version 1.9 comme la version finale de MazeML. Plus aucune mise à jour d'importance n'est prévue (seulement des corrections mineures, des ajouts de commentaires, des corrections de fautes d'orthographe, etc.). Edit: MazeML est maintenant sur SourceForge (MazeML@SF.net) Cordialement, Cacophrène
Édité
le 01/09/2009 à 20:28:48
par Cacophrene
zCoach OCaml, LablGTK Mini-tuto - Introduction à LablGTK ; Mini-tuto - Introduction au dialogue C/OCaml ; OCamlBoggle - Boggle Solver ; MazeML - Labyrinthes ; OCamlTeX - Éditeur LaTeX (en cours) ; Blog - OCaml de pied en cap |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Retour au forum "Générateurs de labyrinthes" ou à la liste des forums
