Rechercher dans la communauté
Affichage des résultats pour « challenge » dans sujets.
502 résultats trouvés
-
challenge debutant seulement avec l\'aide de nos maitres....
lovecraft a répondu à un(e) sujet de lovecraft dans Débuter en LISP
Voici un fichier support: http:// http://cjoint.com/?kouSSPCV6J Voici ma reponse pour la premiere etape: ;******************challenge débutant ;******************Etape 1 création de la fonction sstext (defun sstext () (ssget "X" (list (cons 0 "*TEXT") (cons 8 "TEXTE_INDICE"))) ) Merci de vos aides @plus -
challenge debutant seulement avec l\'aide de nos maitres....
lovecraft a répondu à un(e) sujet de lovecraft dans Débuter en LISP
NB: le but de ce challenge n'est pas de faite une routine concise (car c'est a ce moment là que nos ténors pourront intervenir "une fois le challenge résolu" pour nous faire part de leur maitrise) ;) @plus -
challenge debutant seulement avec l\'aide de nos maitres....
lovecraft a répondu à un(e) sujet de lovecraft dans Débuter en LISP
oups il y a eu un bug du site pendant ma redaction...... Voilà, je relance le challenge débutant j'espère qu'il attira les plus novices.Comme je me situe dans la cours des débutants, je vais essayer de lancer un thème. 1- traitement d'un jeu de selection 2-creer une liste de ce jeu 3-trier la liste 4-ecrire dans un fichier Sujet: Prenons un dessin contenant des textes ou mtextes (des chiffres ex: 1-23-78-2-3 ECT....) dans le calque "TEXTE_INDICE". le but est de faire un jeu de selection puis de creer une liste , de trier la liste dans l'ordre croissant et ensuite d'ecrire cette liste dans un fichier texte sur forme de colonne . Allez au boulot.(lili2006) je pense que c'est le moment de commencer ;) PS:Pour les ténors du lisp ou vlisp je vous prie de ne pas donner de réponse toute faite, mais vous pouvez cependant nous aider. en nous aiguillant sur les command fonctions variables etc.... que nous devons utiliser, ou sur la façon de nous y prendre . Merci de votre aide -
challenge debutant seulement avec l\'aide de nos maitres....
lovecraft a posté un sujet dans Débuter en LISP
Voilà, je relance le challenge débutant j'espère qu'il attira les plus novices.Comme je me situe dans la cours des débutants, je vais essayer de lancer un thème. 1- traitement d'un jeu de selection 2-creer une liste de ce jeu -
Une routine que je met dans mes lisps ou comme (gile) Pour le challenge 12, je n'ai pas eu le temps et en plus, il est en 3D, chose que je ne maitrise pas @+
-
Salut Evgeniy, Bravo, encore une merveille ! mais nos routines ne retournent pas la même chose : $ (CHALLENGE10GILE3 "point.25.4cm.") ("point." 25.4 "cm.") _$ (TEST-FOR-BENCH "point.25.4cm.") ("point" 0.25 "cm" 0.0) Les règles de ce challenge ne sont pas assez précises, on ne sait pas bien ce qu'il faut faire dans des cas comme ça. Lili2006, Je ne veux ni te décourager, ni te désobliger, mais je pense que ce n'est pas vraiment le bon endroit pour débuter. Ces challenges sont des sortes de joutes ou se comparent des routines qui doivent avoir la même fonction. Chacun y va de sa (ou de ses) routine et les critères (tacites) sont la concision, l'éfficacité, l'élégance, la réactivité... Donc pas ou peu de commentaire (à part bseb67). On a un peu essayé des challenges pour débutants, mais ça n'a pas de succès. De plus, en ce qui concerne celui_ci, comme je disais, il n'est pas établi clairement ce que doivent retourner les routines dans les cas particuliers. En gros le but challenge est de retourner à partir d'une chaine de caractères, une liste dans laquelle les nombres (entiers ou réels) apparaissent comme tels et le reste en tronçons de chaine : "qvf12qsdf125 5sf 56dfv2" doit être transformée en ("qvf" 12 "qsdf" 125 " " 5 "sf " 56 "dfv" 2) La grosse difficulté vient du traitement des points parfois séparateur décimal parfois caractère alphabétique et l'ambiguité de ceux qui sont entre un caractère numérique et un caractère alphbétique.
-
Bonsoir à toutes et tous, Super ElpanovEvgeniy mais, heu, ça te dérangerai un ch'ti commentaire, car j'y comprend rien et j'aimerai bien, ne serais-ce que suivre un peu ce qui s'passe. Juste dans le domaine du test car je débute ( j'sais même pas si j'peux dire ça!!!) en Lisp. Merci d'avance et bravo à tous pour ces petits (hum, façon de parler,...!) challenge.
-
Salut Matt666, Pas vraiment, je sais que l'on peut faire un (done_dialog x). Mais c'est, j'ai réussi à faire ce que je voulais. J'ai des variables globales qui contiennent le choix de l'utilisateur lors d'un clic, comme cela en bouclant sur la fonction qui lance la dcl, il peut faire toutes les étapes et dans n'importe quel ordre. Si j'ai le temps, je ferai une version simplifiée. Pour le futur challenge, disons qu'il n'est pas trop en rapport avec autocad, c'est plus tot l'intérêt des listes (encore :o ), et pour une fois pas vraiment un exercice :casstet: ! Je le lancerai dimanche ou lundi. a+
-
Ah dément un challenge 13 !! ta technique ne fonctionne que si un seul bouton de saisie utilisateur hors de la boîte de dialogue est disponible... Tu peux donner des flags à (done_dialog) qui te permettent de pouvoir donner des instructions pour chaque boutons... Avec un (setq loop (start_dialog)), tu donnes à la varible loop le flag de ton bouton, puis avec un (cond ((eq loop [flag du bouton])... Tu définis les actions pour ce bouton... Enfin bon je suppose que tu sais déjà tout ça... Voilà ! A bientot. Matt.
-
challenge 11 \"certainement pour confirmé\"
Matt666 a répondu à un(e) sujet de lovecraft dans Débuter en LISP
La vache mais il est vachement compliqué ce challenge !!!! Gile, comme toujours, tes précisions sont redoutables d'efficacité !! Bon bah on va d'abord essayer de comprendre ce qui est demandé avant de se lancer :) A bientot. Matt. -
J'aurais pensé te voir donner une réponse dans le challenge 11. C'est ton domaine, non ?
-
challenge 11 \"certainement pour confirmé\"
(gile) a répondu à un(e) sujet de lovecraft dans Débuter en LISP
Ça ne se bouscule toujours pas. La question est plus large qu'un "challenge" comme ceux fait pécédemment auxquels on répondait par une (ou quelques) routines. Il s'agirait là de répondre avec une petite application. Je vais essayer de débroussailler un peu (de la manière dont j'ai abordé la question) pour essayer de dégager ce qui pourrait relever d'un (ou de plusieurs) "challenge". Pour répondre à la demande, il faudrait : 1 - Récupérer des données entrées par l'utilisateur : les 2 calques sur lesquels sont les faces 3d et le point. 2 - Sélectionner les faces 3d à la verticale du point. 3 - Calculer les points d'intersections entre la verticale du point et les faces 3d qui sont à sa verticale (du moins leurs altitudes). 4 - Retourner le résultat. Les points 1 et 4 relèvent plutot de choix personnels (esthétique, pratique, convivialité...) d'interface, dans lequels interviennent assez peu, à mon avis, la rapidité d'exécution du code : les actions faites par l'utilisateur seront toujours plus longue que l'interprétation du code. Le point 2 est plus intéressant d'un point de vue "challenge". Comment faire une sélection qui contienne à coup sur les faces 3d concernées et qui, d'un autre côté, ne contienne pas trop d'entités ce qui aurait pour conséquence d'augmenter considérablement le temps d'exécution (puis qu'il faut retrouver parmi ces objets ceux qui sont effectivement à la verticale du point). Comme on est dans le forum "Débuter en LISP" et que j'ai déjà donné une réponse je vais essayer d'expliquer le choix que j'ai fait, ce qui n'empêche pas de donner d'autres solutions sur ce point. En procédant par élimination, entsel nentsel ou nentselp ne permettent pas de sélectionner une face 3d en affichage filaire 2d si le point est à l'intérieur de celle ci. Il en est de même pour ssget avec un seul point. Dans toutes les options possibles avec ssget certaines permettent de faire un jeu de sélection sans intervention de l'utilisateur (excepté le point précédemment acquis) : "_X" (toutes les entités du dessin) ou "_A" (toutes les entités sur des calques dégelés) créerait des jeu de sélection très important (dans le dessin fournit par Lovecraft : 1680 faces 3d sur le calque MNT_NIVEAUFINI, 1970 sur MNT_TN_VILLY) "_W" (fenêtre) et "_WP" (fenêtre polygonale) nécessitent que les objets soient entièrement à l'intérieur de la fenêtre, il serait envisageable de faire une fenêtre de sélection correspondant à la fenêtre de dessin active (moins d'entités que précédemment si on est pas en zoom étendu). Si les faces reherchées sont dans la vue courante, elles seront sélectionnées. "_C" (capture), "_CP" (capture polygonale) et "_F" (trajet) permettent de sélectionner à coup sur les faces 3d recherchés si le point spécifié est un des points de la fenêtre ou du trajet et que celui ci croise une des arrêtes des faces recherchées. Mon choix s'est porté sur trajet, plus simple à utiliser. J'ai un premier point pour mon trajet : le point spécifié, j'en construit un autre de manière à être sûr que le trajet sera entièrement contenu dans la fvue affichée. La variable système VIEWSIZE indique la hauteur de la vue en unité de dessin, en ajoutant cette valeur à la coordonnée Y de mon point je suis certain que mon trajet sera entièrement contenu dans la vue. Donc qu'il coupera les arrêtes des faces 3d recherchées (à condition, bien sur, qu'elles soient aussi à l'intérieur de la vue). De plus, dans le jeu de sélection créé avec l'option trajet les objets sont dans l'ordre dans lequel ils ont été sélectionnés (là partir du premier point du trajet). La fonction ssget autorisant les filtres de sélection, je fait 2 jeux en filtrant les face 3d sur le premier calque et les faces 3d sur le second, ce qui facilite le traitement par la suite. Reste donc, le point 3 : le traitement de ce jeu de sélection pour en ressortir les altitudes des point d'intersection de la verticale du point avec une faces 3d de chacun des calques. Et là, à mon avis, il y a moyen de "challenger". ;) -
Salut..... Ben je suis largué !... en fait je pense qu'il n'y a qu'une seule manière de résoudre ton problème : un fonction récursive ... ;) et je sais que (gile) est sur les starting-bloc.... Le truc que j'ai essayé de faire c'est de tester un l'angle d'un point avec tous les autres pour ressortir les points alignés... puis à partir de ces points alignés je teste la distance pour ressortir les plus éloigné et suprimer les autres... mais je plante lamentablement sur la manière d'interroger TOUS les points, dans toutes les configurations possibles.... J'abandonne pour l'instant.... Un challenge trés interressant !... La routine pour tester une multitude de points les uns par rapport aux autre me semble être un trés bon outils !....
-
Non vraiment je ne vois pas, mais entre nous, au lieu de pinailler sur des détails d'affichage, tu devrais t'amuser avec le challenge 12, j'ai une réponse que je me retiens de poster depuis hier apès midi ;)
-
Salut! Désolé Matt666 :o, j'espère que tu m'en voudra pas ;). Sinon petit message pour (gile), j'ai un premier jet pour ce challenge, je cherche à l'améliorer en me servant de benchmark, et bien il n'est pas très fiable :P . J'ai voulu tester mes deux méthodes pour une sous fonction, j'obtiens 1.00 pour la plus lente (lap lus lente aura toujours 1.00), mais l'autre le coef va de 1.00 à 1.30 :o. Des fois c'est plus rapide, des fois non :casstet: . Donc pour la mesure de temps, il faudrai rien faire d'autre sur le pc. Comme on ne peut mesurer le temps CPU (comme je le faisais en C++). Il me reste aussi à corriger le challenge10, j'ai un petit souci pour des suites de "." dans une suite de chiffres.
-
Salut MAt666! Pour le challenge11, je n'ai pas encore corriger le pb des points qui se suivent. Pour ce nouveau challenge, il faut tester toutes les combinaisons possibles entre les points? Ou seulement se dire que le point p1 et p2 forme une première ligne l1, p2 et p3 une deuxième l2, ... et donc devoir si l2 est une continuité de l1 ? Si c'est cela, je crois que j'ai du faire un truc dans ce genre, car pour tester un réseau, je vérifiai la superposition et le prolongement pour remplacer des morceaux de ligne par une seule ligne. Là je dois retourner bosser, si ma femme me laisse tranquille ce soir, je reprendrai mon lisp pour répondre à ce challenge.
-
Salut MAt666! Pour le challenge11, je n'ai pas encore corriger le pb des points qui se suivent. Pour ce nouveau challenge, il faut tester toutes les combinaisons possibles entre les points? Ou seulement se dire que le point p1 et p2 forme une première ligne l1, p2 et p3 une deuxième l2, ... et donc devoir si l2 est une continuité de l1 ? Si c'est cela, je crois que j'ai du faire un truc dans ce genre, car pour tester un réseau, je vérifiai la superposition et le prolongement pour remplacer des morceaux de ligne par une seule ligne. Là je dois retourner bosser, si ma femme me laisse tranquille ce soir, je reprendrai mon lisp pour répondre à ce challenge.
-
Et Bing encore un !! il s'agit de supprimer les points alignés et au milieu de 2 autres dans une liste de points... Ex : (remove-align '((18.0071 2.97385 0.000000) (18.0071 11.0191 0.000000) (21.4685 11.0191 0.000000) (24.8363 11.0191 0.000000) (24.8363 7.93200 0.000000) (24.8363 2.97385 0.000000) (18.0071 2.97385 0.000000))) -> ((18.0071 2.97385 0.000000) (18.0071 11.0191 0.000000) (24.8363 11.0191 0.000000) (24.8363 2.97385 0.000000) (18.0071 2.97385 0.000000)) je sais pas si c'est assez clair... Voilà ! bon courage ! Matt.
-
challenge 11 \"certainement pour confirmé\"
(gile) a répondu à un(e) sujet de lovecraft dans Débuter en LISP
Ton challenge présente plusieurs difficultés. Du calcul de coordonnées en 3d (ce qui suppose un peu de calcul vectoriel ou l'utilisation de la calculatrice géométrique), ça, tu as montré que tu sais le faire. Faire un sélection de faces à partir d'un point, chose que je n'ai pas réussi à faire directement (même en style visuel "Réaliste" ou "Conceptuel" on ne sélectionne que la face supérieure). Il faut donc trouver une astuce pour sélectionner le minimum de faces (y compris celles à la verticale du point) afin que le traitement ne soit pas trop long. Peux tu me dire si ça n'est pas trop long avec un nombre important de facs affichées dans la fenêtre ou, mieux, m'envoyer un fichier du style de ceux que tu utilises contenant deux modélisations de terrain, je le mettrais en téléchargement ici pour que d'autres puissent essayer aussi. -
Voilà, puisque les challenges font progresser tout le monde, en voici un qui me trotte depuis un certain moment: nous avons des faces 3D qui modelisent un terrain (le terrain naturel) un second qui represente un modelage ou projet. je voudrais par exemple lorsque je clique a un endroit aléatoire avoir les informations suivantes: le Z du terrain naturel le Z du projet et le delta Z (Z terrain - Z projet). Voila je ne vous demande pas de repondre tout de suite mais donner quelques idées afin que la plupart des personnes qui veulent develloper puissent participer. Disons que la reponse definitive (si il y a) soit donnée dans une semaine. Merci d'avance de votre participation. @plus LB
-
A la base c'est, comme tu dirais Gile une coquetterie... J'ai fait une routine qui copie un texte et le colle en ajoutant un nombre à la chaîne. Si c'est un entier ou un décimal, pas de p. J'aurais pu laisser tomber à partir du moment où le texte copié est une chaine de caractères, mais nan ! A chaque nombre trouvé il ajoute la valeur demandée ! Voilà... Ce n'est pas le lisp le plus utile jamais écrit, mais il a le mérite de soulever des problèmes méritant un challenge ;) A bientot. Matt. [Edité le 4/10/2007 par Matt666]
-
On ne fait pas ça pour des médailles ;) J'ai trouvé ce challenge intéressant, pas tellement pour ses applications possibles (là je vois pas bien) mais pour ce qu'il m'aura révélé ou confirmé : - le traitement des listes est plus rapide que celui des chaines. Les routines les plus rapides (pour l'instant) sont celle qui traitent une liste de codes ascii plutôt que la chaine directement. - paradoxalement, dans le cas présent les formes récursives semblent plus rapides que les méthodes itératives équivalentes et ce, d'autant plus que la chaine est longue (je ne comprends pas encore tout à fait bien pourquoi) Attention ces résultat sont à tempérer du fait que les routines ne retourne pas exactement la même chose dans certains cas (voir réponse 12) la routine de bseb67 semble éluder certains tests que font les autres ce qui pourrait expliquer une exécution plus rapide. PS : C'était moi le dernier avec ma première routine avant que je lui supprime un appel récursif inutile. [Edité le 4/10/2007 par (gile)]
-
Re, zut, pas vu.... et maintenant que Patrick_35 et (gile) ont répondu, la difficulté du challenge augmente encore plus car maintenant il faut trouver encore plus "simple et concis"..... pffffffffffff..... encore bien joué en tout cas !
-
Salut, Super, un challenge :D Un premier jet : Edit (2) : petite amélioration (éviter quelques répétitions de l'expression (substr str 1 1) et n'utilser que deux fonctions récursives au lieu de trois) (defun challenge10gile1 (str / str-sub num-sub char) (defun str-sub (elt str / char) (if (/= "" str) (if (and (/= "." (setq char (substr str 1 1))) (or (= "" str) (numberp (read char)) ) ) (cons elt (num-sub char (substr str 2))) (str-sub (strcat elt char) (substr str 2)) ) (list elt) ) ) (defun num-sub (elt str / char) (if (/= "" str) (if (or (and (= "." (setq char (substr str 1 1))) (/= "" (substr str 2 1)) (numberp (read (strcat elt (substr str 1 2)))) ) (and (/= "." char) (numberp (read char)) ) ) (num-sub (strcat elt char) (substr str 2)) (cons (read elt) (str-sub char (substr str 2))) ) (list (read elt)) ) ) (if (and (/= "." (setq char (substr str 1 1))) (numberp (read char)) ) (num-sub char (substr str 2)) (str-sub char (substr str 2)) ) ) EDIT : corrigé un problème avec les points : (challenge10 ".mes.long: 12.52cm.") -> (".mes.long: " 12.52 "cm.") [Edité le 1/10/2007 par (gile)][Edité le 1/10/2007 par (gile)] [Edité le 4/10/2007 par (gile)]
-
Allez, il faut bien faire repartir ces challenges... :D Dites moi si c'est trop simple, ou si ça a déjà été tenté ! Personnellement c'est trop dur... on part d'une chaine de caractères avec chiffres et lettres, et la fonction retourne une liste avec chiffres et les lettres séparées... Ex : "qvf12qsdf125 5sf 56dfv2" -> ("qvf" 12 "qsdf" 125 " " 5 "sf " 56 "dfv" 2) Ex : "a1b2c3d4e5" -> ("a" 1 "b" 2 "c" 3 "d" 4 "e" 5) Ex : "12.52cm" -> (12.52 "cm") Voilà ! [Edité le 1/10/2007 par Matt666]
