Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour « challenge » dans sujets.

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Fonctionnement de ce site
    • Nouvelle règle pour les invités : plus d'écriture possible sans inscription
    • CADxp, comment ça marche?
    • CADxp, vos souhaits
    • Forum test
  • Emploi
    • Emploi, monde du travail
  • AutoCAD
    • AutoCAD 3D
    • AutoCAD 2020-2024
    • AutoCAD LT 2024
    • AutoCAD LT 2020-2023
    • AutoCAD 2019
    • AutoCAD LT 2019
    • AutoCAD 2018
    • AutoCAD LT 2018
    • AutoCAD 2017
    • AutoCAD LT 2017
    • AutoCAD avant 2017
    • AutoCAD LT avant 2017
    • Tutoriaux AutoCAD
    • AutoCAD, liste de souhaits
  • Autres logiciels de CAO
    • Microstation
    • IntelliPlus, IntelliCAD, CadIdesk
    • ZWCAD
  • Architecture, Bâtiment
    • Revit
    • AutoCAD Architecture
    • AutoCAD MEP
    • BIM
  • Mécanique
    • Inventor
    • SolidWorks
    • Creo (ex. Pro/Engineer)
    • Catia
  • SIG, Génie civil, Cartographie, VRD
    • Autodesk Map
    • VRD
    • Covadis
    • Infraworks 360
    • Mensura
    • AutoCAD Civil
    • Autopiste
    • SIG internet
  • Imagerie, animation, PAO, modélisation 3D
    • 3DSMAX
    • Création et retouche d'images
    • Sketchup
    • Autres logiciels d'infographie
    • Lumion 3D
  • Programmation
    • LISP et Visual LISP
    • VBA et VB
    • Personnalisation, macros, DIESEL
    • ObjectARX/DBX, C++, .NET, RealDWG
    • Programmer en s'amusant
    • Suggestions de développements
  • Trucs et astuces
    • AutoCAD trucs et astuces
    • Windows trucs et astuces
  • Matériel CAO
    • Ordinateurs
    • Périphériques d'entrée
    • Périphériques de sortie, impression
  • Divers
    • CAO, généralités
    • Echanges de fichiers
    • Organisation du travail
    • Visualisateurs, annotation
    • Pause café
    • Bibliothèques de composants
    • Formation
  • Logiciels connexes
    • Devis, métré, estimation, quantitatif
    • Calculs et simulation
  • Forums métier
    • Bâtiment
    • Infrastructures

Calendriers

Il n’y a aucun résultat à afficher.

Blogs

Il n’y a aucun résultat à afficher.


Rechercher les résultats dans…

Rechercher les résultats qui contiennent…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Salut, Ce sujet m'a donné une idée de challenge. Pour représenter une arborescence, on peut, soit utiliser une liste constituée des "chemins complets" de toutes les entrées : (setq lst '(("1" "1.1" "1.1.1") ("1" "1.1" "1.1.2") ("1" "1.2") ("1" "1.3" "1.3.1" "1.3.1.1") ("1" "1.3" "1.3.1" "1.3.1.2") ("2") ("3" "3.1") ("3" "3.2" "3.2.1") ("3" "3.2" "3.2.2") ("3" "3.2" "3.2.3") ) ) soit utiliser une liste de sous-listes dont chaque premier élément représente un nœud dans l'arborescence: (setq tree '(("1" ("1.1" ("1.1.1") ("1.1.2") ) ("1.2") ("1.3" ("1.3.1" ("1.3.1.1") ("1.3.1.2") ) ) ) ("2") ("3" ("3.1") ("3.2" ("3.2.1") ("3.2.2") ("3.2.3") ) ) ) ) Ce challenge consiste donc à créer deux routines : une qui transformerait lst en tree et une autre qui ferait la transformation inverse : (lst2tree lst) => tree (tree2lst tree) => lst
  2. Bonsoir, Voilà en corrigeant une coquille dans une de mes routines, j’ai pensé que la routine en question pourrait faire l’objet d’un petit challenge pas trop compliqué de début d’année. Il s’agit simplement d’émuler un peu la fonction subst de façon à ce que cette nouvelle version ne travaille plus sur un seul élément à remplacer, mais sur un ensemble d’éléments fourni sous forme de liste. Syntaxe (lsubst lst-nouv-élemt lst-anc-élemt lst) Arguments lst-nouv-élemt: Liste des nouveaux éléments lst-anc-élemt : Liste des anciens éléments lst : Liste de réference Valeur en retour Une liste modifié ou les nouveaux éléments remplacent les anciens, la liste est inchangée pour les éléments introuvablent Quelques exemples de résultats attendus: (lsubst '(x y z) '(a c e) '(a b c d c)) retourne (X B Y D Y) (lsubst '(b c nil) '(c b a) '(a b c d c)) retourne (nil C B D B) (lsubst '(b c) '(c b a) '(a b c d c)) retourne (A C B D B) (lsubst '(b c d) '(c B) '(a b c d c)) retourne (A C B D B) (lsubst '(z y w) '(a b c) '(a b c d c)) retourne (Z Y W D W) (lsubst '(b c a) '(a b c) '(a b c d c)) retourne (B C A D A) En espérant avoir été suffisamment explicite, sinon ne pas hésiter à demander un complément d’information. A+
  3. Participez avec vos étudiants au Challenge International PTC ! Pour la quatrième année consécutive, PTC organise un concours de conception international ouvert à tous les étudiants dont l’établissement est membre du Programme Éducation PTC et utilise Pro/ENGINEER. Nous invitons tous les étudiants à participer pour qu'une image de leur réalisation s'affiche dans la fenêtre de l'installateur (ptcsetup) lors du lancement des prochaines versions de Pro/ENGINEER Schools Edition et Pro/ENGINEER Student Edition Wildfire 5.0! Les inscriptions sont ouvertes jusqu’au 16 avril 2010. Prix Décernés L’image du modèle gagnant apparaîtra lors du lancement des prochaines versions de Pro/ENGINEER Schools Edition et Pro/ENGINEER Student Edition Wildfire 5.0 Une licence site Pro/ENGINEER University Plus gratuite pour une année pour l’établissement du gagnant Des prix surprises Les 10 finalistes recevront un exemplaire de Pro/ENGINEER Student Edition, des cadeaux PTC ainsi qu’un certificat. Encore un grand bravo au gagnant du challenge international 2009! Xavier Benoist de l'IUT de Grenoble Évaluation L'évaluation sera basée sur une combinaison de notes sur un total de 50 points prenant en compte les critères suivants : Design Innovateur - 15 points Qualité de l’image - 10 points Complexité de la Conception - 15 points Faisabilité de la solution proposée - 5 points Esthétique/Style - 5 points Comment s'inscrire ? Envoyez l’image de votre modèle avant le 16 Avril 2010 à ptcdesign@ptc.com. Informations complémentaires Pour plus d'informations, rendez-vous sur www.ptc.com/go/challenge ou contactez Evelyne Margheria responsable du Programme Éducation PTC. [Edité le 19/3/2010 par valimdj][Edité le 19/3/2010 par valimdj][Edité le 19/3/2010 par valimdj][Edité le 19/3/2010 par valimdj] [Edité le 19/3/2010 par valimdj]
  4. Salut, Ça faisait longtemps, et une demande sur un autre forum m'a donné une idée. Il s'agirait de faire une routine qui incrémente les chiffres romains : (I+ "III") retourne "IV" (I+ "XV") retourne "XVI" (I+ "CXLIX") retourne "CL" (I+ "MMMCMXCIX") retourne "MMMM" Rappel : I = 1 II = 2 III = 3 IV = 4 V = 5 VI = 6 VII = 7 VIII = 8 IX = 9 X = 10 L = 50 C = 100 D = 500 M = 1000
  5. RhymOne

    Challenge 3D N°1

    Bonjour à tous et toutes, Comme promis je désire tous les trimestres, lancer dans le cadre du forum un challenge 3D. Je veux pour cela établir des règles simples et lancé de sujets ouverts à tous. Ayant pour but final d'acquérir de multiples avis et critiques sur son travail final afin de s'améliorer. Trois parties seront notées sur 10: 1. La modélisation 2. Le texturage, la qualité d’adaptation du modèle à son environnement. 3. Le rendu (lumière et qualité de sortie) [surligneur] Les règles : [/surligneur] Soft autorisés pour la modélisation et le rendu (Toutes version d’AutoCAD). Les applicatifs sont autorisés du moment qu’ils sont à l’intérieur d’AutoCAD. Tous types de logiciel image pour la modification du rendu est interdite. Par contre elle est autorisée pour les textures et pour l’environnement. Le but est de progresser, ne l’oublier pas…… [surligneur] Les liens utiles pour poster : [/surligneur] Image : http:// http://imageshack.us/ http:// http://www.upload-perso.net/index.php Model 3D : http://dl.free.fr/ Sujet N°1 (Délais 3mois - Fin 01/01/2011) A paris trouver un monument de son choix, Le modéliser (aucun import ou modèle télécharge n’est accepté). L’intégrer dans un environnement de votre choix : -photographie d’arrière plan -Modélisation -Dessin ou création d’image Précisions : cet environnement ne doit être en aucun cas celui d’origine… retirée du forum car apparement trop compliquée pour certains.... Sujet N°1: Crée un modèle ouvert à la critique ..... A vos modèles, et j’espère que plusieurs d’entre vous ce lancerons ce challenge !!! A bientôt
  6. Hello Votre serviteur "LeCrabe Decapodesque" vous propose un nouveau challenge !!! :P Que pensez vous de ce challenge ??? Je commence a avoir un peu trop de dessins ayant des XDATAs que je convertis en Object Data (OD) de MAP/CIVIL puis apres par des requetes de MAP, je peux generer des textes qui representent le contenu des ODs donc en fait des XDATAs ! Donc ca va ... Pour bruler les etapes et surtout pouvoir travailler avec un simple AutoCAD ou Autodesk Architectural Desktop, (car tout le monde n'a pas de MAP ou CIVIL) je desire le programme suivant : 1) selection classique des entites a traiter On ne traitera que les entites suivantes : ligne, arc, cercle, bloc, point, texte, polyligne et si possible Region et svp MPolygon Je ne vois pas l'interet de traiter d'autres objets ! Qu'en pensez vous ? 2) Poser la question : quelle application XDATA registree voulez vous traiter ? ( car un objet peut avoir N applis XDATA registree et pour chacune avoir N infos attributaires ) 3) pour chaque entite selectionnee ayant des XDATAs correpondant a l'Appli XDATA registree generer une entite texte simple "tout simplement" qui reflete son contenu 4) Sur quel calque ? Sur un nom de calque tres precis : NomCalqueEntite__AppliRegistree__TypeEntite__TypeXDATA ce qui donnerait par exemple pour un cercle sur le calque BATIMENT et Appli XDATA registree CADASTRE : BATIMENT__CADASTRE__CIRCLE__INTEGER ou BATIMENT__CADASTRE__CIRCLE__STRING Bon d'accord cela va multiplier les noms de calque, mais on pourra toujours apres rassembler le tout et purger les calques indesirables ! 5) Ou va t-on generer le texte simple ? Bloc, Point, Texte, etc : au point d'insertion Cercle : au centre Ligne, Arc : au milieu Polyligne : grave question, disons au milieu du 1er segment/arc (car le centre de gravite peut etre a l'exterieur ) Region et MPolygon : idem Polyligne Les suggestions / ameliorations sont les bienvenues ! :cool: Merci d'avance pour les Pros qui vont relever ce "petit" defi !! Bon WE a tous, Le Decapode
  7. une idée de challenge un peu plus qu'intermédiaire pour les fanas des gestions de listes Elle me vient du problème posé par BonusCAD concernant la projection d'une polyligne 2D sur un modèle de terrain à facettes Soit une série de doublets de points correpondant à des segments de polyligne 3D à construire ((P1 P2) (P5 P6) (P9 P10) (P2 P3) (P7 P8) (P4 P5) (P6 P7).(P3 P4)......) il s'agit de les remettre dans l'ordre en faisant correspondre les débuts de doublet et les extrèmités (P1 P2) (P2 P3) (P3 P4) (P4 P5) (P6 P7) (P7 P8) (P8 P9) (P9 P10)...... dans un premier temps on pourra considérer que les doublets ne sont pas à inverser; dans un second temps on pourra imaginer avoir récupéré aussi bien (P5 P6) que (P6 P5) exemple (Sortlist '(((3.0 4.0 0.0) (3.0 6.0 0.0)) ((1.0 2.0 0.0) (1.0 4.0 0.0)) ((1.0 4.0 0.0) (3.0 4.0 0.0)) ((3.0 6.0 0.0) (4.0 7.0 0.0)) ((6.0 7.0 0.0) (6.0 4.0 0.0)) ((6.0 4.0 0.0) (7.0 3.0 0.0)) ((4.0 7.0 0.0) (6.0 7.0 0.0)) ((7.0 3.0 0.0) (9.0 3.0 0.0)) ((9.0 3.0 0.0) (10.0 5.0 0.0)) ((12.0 5.0 0.0) (12.0 3.0 0.0)) ((10.0 5.0 0.0) (12.0 5.0 0.0)) )) donne (((1.0 2.0 0.0) (1.0 4.0 0.0)) ((1.0 4.0 0.0) (3.0 4.0 0.0)) ((3.0 4.0 0.0) (3.0 6.0 0.0)) ((3.0 6.0 0.0) (4.0 7.0 0.0)) ((4.0 7.0 0.0) (6.0 7.0 0.0)) ((6.0 7.0 0.0) (6.0 4.0 0.0)) ((6.0 4.0 0.0) (7.0 3.0 0.0)) ((7.0 3.0 0.0) (9.0 3.0 0.0)) ((9.0 3.0 0.0) (10.0 5.0 0.0)) ((10.0 5.0 0.0) (12.0 5.0 0.0)) ((12.0 5.0 0.0) (12.0 3.0 0.0))) ce sont des points 2D mais çà doit marcher aussi avec les points 3D PS, je n'ai pas encore cherché donc je n'ai pas encore de solution Ps2 : Après réflexion, En fait, c'est assez simple... [Edité le 24/5/2007 par Didier-AD]
  8. Salut à tous! :) Bon tout d'abord désolé patrick_35, mais je n'ai pas eu le temps de faire ton challenge 22. Ayant répondu à un post http:// http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=20147#pid83953 Je pense que développer un lisp qui permettrai de remplacer des éléments dans un dessin par un bloc serai : - pas facile à faire (d'où super challenge ;) ) - utile je pense Pour l'utilisation, je pense que l'on demande à l"utilisateur de choisir des entités (dans la même sauce que pour les groupes), qu'il donne un nom au bloc, que le lisp remplace donc ces entités sélectionnées par un bloc et puis qu'il recherche dans l'espace objet s'il y a des répétitions de cet ensemble d'entités afin de les remplacer aussi par le bloc nouvellement créé. Bien-sûr, étant donné la difficulté, ce challenge n'est pas à rendre à la fin de la semaine ;) Je posterai avant la fin de semaine en lien un fichier dwg en version 2004 qui servira d'exemple a+
  9. RhymOne

    Challenge 3D

    Bonjour, Voila depuis peu de plus en plus d'utilisateur utilise autocad pour la 3D, et avec les nouveauté des versions recentes il me semble judicieu de vous proposé en accord avec les utilisateur et le moderateur un challenge 3D. C.A.D decidé ensemble d'un sujet et réalisé un modèle 3D servant à des rendus photoréaliste ainsi noté par les utilisateur de Cad Xp. Merci de vos réponse et dite moi si sa vous interesse
  10. Bonjour Une idée de challenge Déterminer si un nombre est dans une plage (in 45 "44-50,55sfs-66,100,800") --> T (in 52 "44-50,55sfs-66,100,800") --> nil (in 50.2 "44-50.5,55sfs-66,100,800") --> T (in 50.6 "44-50.5,55sfs-66,100,800") --> nil (in "58" "44-50.5,55sfs-66,100,800") --> T (in "67.5" "44-50.5,55sfs-66,100,800") --> nil A vos neurones ;) @+
  11. Salut ! Bon Patrick_35 a proposé un nouveau challenge à la fin du challenge 14, et je permets d'en faire un nouveau post. C'est encore un challenge de niveau assez facile.... Exemple : Liste de base : (setq lst '((-1 . ) (0 . "LWPOLYLINE") (5 . "33EC") (67 . 0) (8 . "0") (62 . 256) (6 . "ByLayer") (370 . -1) (48 . 1.00000) (60 . 0) (90 . 8) (70 . 1) (38 . 0.000000) (39 . 0.000000) (210 0.000000 0.000000 1.00000) (10 0.000000 0.000000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 20.0000 0.000000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 20.0000 16.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 -8.88178E-016 16.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 -1.46953E-015 12.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 8.00000 12.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 8.00000 7.00000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 -1.77568E-015 7.00000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000))) Fonction : (coor lst) Retourne : ((0.000000 0.000000 0.000000) (20.0000 0.000000 0.000000) (20.0000 16.0000 0.000000) (-8.88178E-016 16.0000 0.000000) (-1.46953E-015 12.0000 0.000000) (8.00000 12.0000 0.000000) (8.00000 7.00000 0.000000) (-1.77568E-015 7.00000 0.000000)) Voilà... Alors, s'il vous plait, faites un peu plaisir à Patrick_35 !!! Pour les pros, on essaie de faire la même en autolisp pur ? (bon je sais c pas très dur...) Allez lili, lovecraft, on ne regarde les codes existants, et on essaie ! Bonne chance. Matt. [Edité le 12/12/2007 par Matt666]
  12. Cadeau de noël !!! :) Petit challenge pas très dur, mais intéressant, je trouve... Donc tout le monde sur le pont ! Il s'agit de supprimer des éléments au sein d'une liste (encore un challenge sur les listes !!). Un exemple est toujours plus probant : Une liste : (1 2 3 4 5 6 7 8 9 10 11 12 23) La routine retourne la même liste sans le 7 8 9. Donc : (1 2 3 4 5 6 10 11 12 23) A l'attaque !!! PS : Ce challenge est un peu visé... Lili, lovecraft et consorts, à vous de jouer !! Allez-y tranquillement, et puis si vous avez besoin d'un coup de main, ya qu'à demander :D ! Bon courage.. A bientot ! Matt. [Edité le 4/12/2007 par Matt666]
  13. Salut, Encore un petit challenge de manipulation de listes. Il s'agit, dans une liste de faire monter d'un rang les éléments spécifiés dans une liste d'indices triés. Exemples : (setq lst '("a" "b" "c" "d" "e" "f")) (list_up '(2 3) lst) retourne ("a" "c" "d" "b" "e" "f") (list_up '(0 3) lst) retourne ("a" "b" "d" "c" "e" "f") (list_up '(0 1 4 5) lst) retourne ("a" "b" "c" "e" "f" "d") ou avec une liste de chiffres (setq lst '(0 1 2 3 4 5)) (list_up '(1 3) lst) retourne (1 0 3 2 4 5) (list_up '(0 2) lst) retourne (0 2 1 3 4 5) (list_up '(3 4 5) lst) retourne (0 1 3 4 5 2)
  14. Bonjour Je viens d'avoir une idée de challenge Le but serait dans une liste de conserver que les chiffres. Exemple (1 2 "a" "b" (6.5 7 "z" "r") "f" (3 "q" (3 "r" 0) "d" 8.4) "g" 8 ("dd" ("jj" "nn") "tt") 9 ("zz" ("ww" "ze" (20 25)) "tt"))) donnerai (1 2 (6.5 7) (3 (3 0) 8.4) 8 9 (((20 25)))) Une autre de ramener tous les chiffres sur un seul niveau d'une liste Exemple (1 2 "a" "b" (6.5 7 "z" "r") "f" (3 "q" (3 "r" 0) "d" 8.4) "g" 8 ("dd" ("jj" "nn") "tt") 9 ("zz" ("ww" "ze" (20 25)) "tt"))) donnerai (1 2 6.5 7 3 3 0 8.4 8 9 20 25) A vos neurones ;) @+ ps : je pense que c'est un peu trop facile pour (gile) ;)
  15. http://img502.imageshack.us/img502/6532/designquestfj2.jpg Pour la troisième année consécutive, PTC organise un concours de conception international ouvert à tous les étudiants dont l’établissement est membre du Programme Éducation PTC et utilise Pro/ENGINEER. Pour être admissibles, les participants (groupe ou individu) doivent être inscrits dans un établissement actuellement membre du Programme Éducation PTC et parrainés par un enseignant. Inscrivez-vous dès maintenant! Pour plus d'informations : http:// www.ptc.com/go/challenge http://www.dcp-canberra.com/files/design/tim-austen01.jpg P.S. : N'oubliez pas de changer la langue en français : http://www.ptc.com / Worldwide Sites / French http://img183.imageshack.us/img183/5008/proengineerwf5simplefs4.jpg [Edité le 19/3/2009 par valimdj] [Edité le 19/3/2009 par valimdj]
  16. Et voilà, Mon premier challenge :)! En plus c'était mon numéro de maillot dans mon club de foot. Le but de ce challenge est de faire un petit jeu, on fera 2 parties. La première sera une préparation du terrain. Je vois déjà des :casstet: :o :exclam: . La première est je pense plus difficile que la seconde. Voilà le sujet de la première partie, qui est en fait deux fonctions: 1° (defun genere( nb)) => on doit renvoyé une liste de nb lettres de l'alphabet ex: (genere 3) => '("a" "d" "p") 2° (defun combi( lst min)) => lst est une liste de nb lettres de l'alphabet, et on doit renvoyé toutes les listes possibles de sorte que les éléments de lst soient triés alphabétiquement et que l'on prenne de nb à min lettres. (Je sais pas trop si cela va être clair, alors voici la suite de l'exemple) ex: (combi '("a" "d" "p") 1) => '(("a" "d" "p") ("a" "d") ("a" "p") ("d" "p") ("a") ("d") ("p") ) VOilà. On va attendre ce week-end pour donner des premiers jets. Bonne soirée.
  17. Bonjour Un nouveau challenge :D Le but est de retrouver tous les sous-répertoires à partir d'une branche de l'arborescence. Si on indique la racine, on aura donc tous les répertoires du disque. Ceux qui ont déjà la solution pourront patienter jusqu'à demain ;) @+
  18. Salut, Ça fait longtemps qu'il n'y en pas eu, alors j'en propose un pas trop difficile. Il s'agit de faire une routine qui retourne la position d'une suite d'éléments dans une liste. Exemples : _$ (position '(3 1) '(3 1 3 3 4 2 1)) 0 _$ (position '(4 2 1) '(3 1 3 3 4 2 1)) 4 _$ (position '(4 1) '(3 1 3 3 4 2 1)) nil
  19. Salut, Un petit challenge pour jouer avec l'appariement de caractères. Les parenthèses du LISP, les accolades du DCL ou des formatages de mtextes fonctionnent par paires et peuvent être profondément imbriquées. Il s'agirait donc de faire une routine "générique" qui retournerait une liste composée de la position d'un caractère ouvrant et de son correspondant fermant dans une chaîne. Les arguments pourraient être : - le caractère (ou suite de caractère) "ouvrant" ex : "(", "{", "% - son correspondant fermant, ex : ")", "}", ">%"... - la chaîne - la position du départ de la recherche dans la chaîne exemples : (paire "(" ")" "(* (+ 2 3) 6)" 0) retourne (0 12) (paire "(" ")" "(* (+ 2 3) 6)" 1) retourne (3 9) (paire "(" ")" "(* (+ 2 3) 6" 0) retourne nil [Edité le 18/8/2008 par (gile)]
  20. Bonjour Je propose à petit challenge pour tous niveaux. Ceux qui se considèrent comme débutant peuvent déjà proposer leurs solutions. Ceux qui se considèrent comme d'un niveau intermédiaire pourront proposer leur solution à partir de mercredi. Et pour les autres, à partir de jeudi. Le but, serait à partir d'une liste, d'en extraire le début, la fin ou remplacer un élément d'une liste. Un exemple (setq lst '((1 "a") (2 "b") (1 "a") (1 "a") (5 "e") (3 "c"))) (deb_pat lst 3) --> ((1 "a") (2 "b") (1 "a")) (fin_pat lst 3) --> ((1 "a") (1 "a") (5 "e") (3 "c")) (sub_pat lst '(9 "i") 3) --> ((1 "a") (2 "b") (1 "a") (9 "i") (5 "e") (3 "c")) Un test du Benchmark sera fait sur toutes les propositions afin de déterminer le vainqueur pour la routine la plus rapide. A vous neurones ;) @+
  21. Bonjour à tous, Allez je lance le p'tit challenge du WE. Le but c'est de creer des types de lignes avec des formes. Comme ci-dessous: 800x400http://images.imagehotel.net/w45xtrzy5p.jpg[/img] Je donne quelques piste pour les personnes qui ne connaissent pas. 1/ creer un fichier shp 2/faire un fichier shx 3/creer un fichier de type de ligne .lin Le but c'est de nous montrer vos plus belle oeuvres :) Bonne journée LB[Edité le 14/6/2008 par lovecraft][Edité le 14/6/2008 par lovecraft][Edité le 14/6/2008 par lovecraft][Edité le 14/6/2008 par lovecraft] [Edité le 14/6/2008 par lovecraft]
  22. Bonsoir, Il s 'agit donc d' un puzzle paramétrable en nombre de pièces horizontales et verticales, ce qui donne des niveaux de jeux. N 'allez toutefois pas au delà de 10 x 10 sinon ça va ramer, quoique... C 'est un fichier compressé qui contient le module puzzle.dvb et l 'image puzzle_01.jpg, qu 'il faudra mettre à la racine C: Sinon, vous devrez adapter le code. Vous pourrez bien sûr changer l 'image qui devra être de 234 sur 234 en pixels. Quel est le challenge ? Cela ne génère que des pièces rectangulaires, j 'aimerais avoir des vraies pièces de puzzle. Dans le code, il y a les prémisses de cette construction.... Avis aux amateurs. Je n 'ai pas testé très profondément, retour souhaité ici. télécharger ici [Edité le 21/3/2008 par nazemrap]
  23. Bonjour encore une idée de challenge :) Cette fois ci, ce serait pour incrémenter une valeur avec un nombre au choix par exemple (inc "40" 10) --> 50 (facile) (inc "ac5" 10) --> ad5 (on commence à corser) (inc "ac5" 20) --> ae5 (inc "ay5" 10) --> az5 (inc "ay5" 20) --> ba5 (inc "aaj" 10) --> aat (cela devient sérieux) (inc "aaj" 20) --> abd (inc "zy5" 10) --> zz5 (inc "zy5" 20) --> aaa5 (inc "zzh" 10) --> zzr (inc "zzh" 20) --> aaab @+ [Edité le 17/12/2007 par Patrick_35]
  24. Bonjour et bonnes fêtes à tous, J 'ai changé de rubrique, celle-ci me paraissant plus adaptée. J 'ai voulu terminer mon challenge, cela n'a pas été sans mal. Je le soumets donc à vos appréciations et critiques, améliorations bienvenues. j' ai souhaité dessiner les symboles au moins une fois, en utilisant la création de blocs. Pas d' autres explications , c'est dans le code. A rajouter: le comptage et affichage du score.... Si ça ne marche pas, protester ici. Addiction interdite. 'definition des variables pour les 3 cartes (le 0 compte aussi) Dim carte(2) As AcadLWPolyline 'definition des points nécesssaires à la polyligne 4 sommets avec x et y pour chacun soit 8 valeurs en double précision Dim pt(0 To 15) As Double 'definition de la variable pour la largeur Dim largeur As Double ' definition de la variable pour la hauteur Dim hauteur As Double ' definition d' une varariable entier pour une boucle Dim fois As Integer ' definition d' une varariable entier pour l 'écart séparant 2 cartes Dim dep As Double ' definition d'une variable pour le chanfrein de la carte Dim ray As Double ' definition d'une variable pour verifier bloc existant Dim bloc As AcadBlock 'definition d' un contenant pour la liste de tirage. Dim liste As Variant Dim cp_liste As Variant Dim alea As Integer '----------------------- ' definition du point de centre de la carte Dim centre_carte(0 To 2) As Double 'definition de la position du symbole de la carte Dim pos_symbole(0 To 2) As Double 'definition de 3 arcs pour l 'as de coeur Dim arc(3) As AcadArc 'definition as de coeur comme région Dim as_de_coeur As AcadRegion '----------------------- 'definition des éléments necessaires a as de coeur 'liste d'entités qui composent le symbole coeur Dim liste_obj(3) As AcadEntity 'définition de la variable qui recevra la région Dim region As Variant 'définition des variables nécessaires à la hachure du symbole Dim hachure As AcadHatch Dim hachure_pique As AcadHatch Dim nom_motif As String Dim hachure_type As Long Dim associatif As Boolean Dim contour_hachure(0) As AcadEntity '----------------------- 'definition des blocs Dim pt_insertion(0 To 2) As Double Dim bloc_pied As AcadBlock Dim bloc_coeur As AcadBlock Dim bloc_pique As AcadBlock Dim bloc_trefle As AcadBlock '----------------------- 'definition des references de blocs Dim ref_coeur As AcadBlockReference Dim ref_pique As AcadBlockReference Dim ref_trefle As AcadBlockReference Dim calq1 As AcadLayer Dim calq2 As AcadLayer Dim calq_actif As AcadLayer '----------------------- 'definition des variables pour rejouer ou arreter Dim no_gagnant As Long Dim retour_carte As AcadLWPolyline Dim reponse As Integer 'definit variable pour verifier Dim verif As Integer Public Function DenR(angle) Pi = 4 * Atn(1) DenR = (angle * Pi) / 180 End Function Public Sub bonneteau_1() verif = 0 debut: pt_insertion(0) = 0: pt_insertion(1) = 0: pt_insertion(2) = 0 'valoriser les 3 paramètres de dimension et placement 'largeur = InputBox("Quelle est la largeur de la carte")'mettre en service ici pour la largeur de carte largeur = 10 'à supprimer si utlisation de la ligne supétieure. hauteur = largeur * 2 dep = largeur * 2 ray = largeur * 0.1 'positionne le symbole 'conforme aux tracés géométriques préconisés, mais à modifier suivant besoins 'cela permettra de changer le point de base si on fait tout un jeu un jour 'position en X pos_symbole(0) = pt_insertion(0) - (ray / 2) 'position en Y pos_symbole(1) = pt_insertion(1) + (ray) 'on reste sur le plan à 0 pos_symbole(2) = 0 'Stop 'Création des blocs si necessaires If verif = 0 Then coeur pied pique trefle End If 'Création des calques Set calq1 = ThisDrawing.Layers.Add("rouge_coeur_carreau") calq1.color = acRed Set calq2 = ThisDrawing.Layers.Add("noir_pique_trefle") calq2.color = acWhite 'la liste liste = Array("coeur", "pique", "trefle") cp_liste = liste 'création des cartes avec une boucle '3 tours For fois = 0 To 2 'point d' origine au tour suivant le placement du point d 'origine est augmenté de la variable de placement pt(0) = 0 + (dep * fois) + ray: pt(1) = 0 pt(2) = pt(0) + largeur - 2 * ray: pt(3) = pt(1) pt(4) = pt(2) + ray: pt(5) = pt(3) + ray pt(6) = pt(4): pt(7) = pt(3) + hauteur - ray pt(8) = pt(2): pt(9) = pt(3) + hauteur pt(10) = pt(0): pt(11) = pt(9) pt(12) = pt(0) - ray: pt(13) = pt(7) pt(14) = pt(12): pt(15) = pt(1) + ray 'creation de la carte proprement dit avec une polyligne 2d Set carte(fois) = ThisDrawing.ModelSpace.AddLightWeightPolyline(pt) 'propriété qui permet de fermer la polyligne sur son premier point carte(fois).Closed = True 'centre de la carte 'permettra les positionnements centre_carte(0) = pt(0) + (largeur / 2) - ray centre_carte(1) = hauteur / 2 centre_carte(2) = 0 'propriété qui permet d'avoir des coins arrondis For fois2 = 1 To 7 Step 2 carte(fois).SetBulge fois2, Tan(DenR(22.5)) Next fois2 'creation aleatoire pour dessinner les symboles Randomize alea = Int((2 * Rnd) + 0.5) While cp_liste(alea) = "rien" alea = Int((2 * Rnd) + 0.5) Wend 'Appel création de symbole Set calq_actif = ThisDrawing.ActiveLayer Select Case alea Case 0 ThisDrawing.ActiveLayer = calq1 Set ref_coeur = ThisDrawing.ModelSpace.InsertBlock(centre_carte, "coeur", 1, 1, 1, 0) Case 1 ThisDrawing.ActiveLayer = calq2 Set ref_pique = ThisDrawing.ModelSpace.InsertBlock(centre_carte, "pique", 1, 1, 1, 0) Case 2 ThisDrawing.ActiveLayer = calq2 Set ref_trefle = ThisDrawing.ModelSpace.InsertBlock(centre_carte, "trefle", 1, 1, 1, 0) End Select ThisDrawing.ActiveLayer = calq_actif cp_liste(alea) = "rien" Next fois 'reglage du zoom ThisDrawing.Application.ZoomExtents Dim pointz1(0 To 2) As Double Dim pointz2(0 To 2) As Double pointz1(0) = -(largeur / 2): pointz1(1) = 0: pointz1(2) = 0 pointz2(0) = largeur * 6: pointz2(1) = hauteur * 2.5: pointz2(2) = 0 ZoomWindow pointz1, pointz2 'boite de dialogue proposant de jouer If verif = 0 Then Dim Msg, Style, Titre Msg = "Jouer ?" ' Définit le message. Style = vbYesNo ' Définit les boutons. Titre = "Lancer le jeu" ' Définit le titre. ' Affiche le message. reponse = MsgBox(Msg, Style, Titre) End If 'efface les blocs ref_coeur.Delete ref_pique.Delete ref_trefle.Delete 'si reponse négative, sortir If reponse = 7 Then GoTo fin '--------------------------- 'seconde phase '--------------------------- 'affecte la carte gagnante Randomize alea = Int((2 * Rnd) + 0.5) no_gagnant = carte(alea).ObjectID 'Selection éventuelle de la carte gagnante 'MsgBox "Selectionnez l' as de coeur" 'Message d' invite, également sur la ligne de commande ThisDrawing.Utility.GetEntity retour_carte, basePnt, "Selectionnez l' as de coeur en cliquant sur le contour." If retour_carte.ObjectID = no_gagnant Then MsgBox "BRAVO, vous avez gagné !!!!" Else MsgBox "Malheureusement ce n 'est pas la bonne carte !" End If reponse = MsgBox("Voulez-vous rejouer ?", vbYesNo) If reponse = 6 Then For fois2 = 0 To 2 carte(fois2).Delete Next 'retourne à l 'étiquette debut en evitant la boite initiale verif = 1 GoTo debut End If fin: 'supprime les contours et les calques For fois2 = 0 To 2 carte(fois2).Delete Next calq1.Delete calq2.Delete ' Attention les blocs ne sont pas purgés. End Sub Public Sub coeur() '-------------------------- ' il s' agit ici d'un sous programme qui définit le bloc coeur. '-------------------------- Set bloc_coeur = ThisDrawing.Blocks.Add(pt_insertion, "coeur") 'traçage de arc1 supérieur gauche en reprenant le rayon défini pour l'arrondi et économiser les variables 'ceci est complètement arbitraire, à vous d 'innover sur ce point. ' l 'arc a besoin du centre, du rayon, de l'angle de départ en radian et de l'angle de fin en radian 'sens trigo 'on réutilise ici la fonction de MDSV31 pour la conversion degrés vers radians Set arc(0) = ThisDrawing.ModelSpace.AddArc(pos_symbole, ray, DenR(60), DenR(180)) 'miroir pour arc1 en symétrie avec 2 points Set arc(1) = arc(0).Mirror(arc(0).StartPoint, pt_insertion) 'traçage de arc3 inférieur gauche car je dispose maintenant du point final de 'arc1 qui devient le centre de arc3 Set arc(3) = ThisDrawing.ModelSpace.AddArc(arc(0).EndPoint, (3 * ray), DenR(300), DenR(360)) 'miroir pour arc2 en symétrie avec 2 points Set arc(2) = arc(3).Mirror(arc(0).StartPoint, pt_insertion) 'mettre les arcs dans la liste For fois2 = 0 To 3 Set liste_obj(fois2) = arc(fois2) Next 'Stop 'la region dans la variable variant region = ThisDrawing.ModelSpace.AddRegion(liste_obj) 'recupération de la région qui est la première et 'la seule créée présente dans la variable region 'il peut donc éventuellement y en avoir plusieurs Set as_de_coeur = region(0) as_de_coeur.Move arc(2).EndPoint, pt_insertion ' définition de la hachure nom_motif = "SOLID" hachure_type = acHatchPatternTypePreDefined associatif = True ' création de la hachure Set hachure = ThisDrawing.Blocks("coeur").AddHatch(hachure_type, nom_motif, associatif) Set contour_hachure(0) = as_de_coeur ' ajouter le contour et afficher la hachure hachure.AppendOuterLoop (contour_hachure) hachure.Evaluate hachure.color = acByLayer ThisDrawing.Regen True 'suppression du contour as_de_coeur.Delete arc(2).Delete End Sub Public Sub pied() '-------------------------- ' il s' agit ici d'un sous programme qui sera appelé par le programme principal. 'création du pied en bloc necessaire pour le pique et le trefle 'vous avez remarqué que c 'est la même figure à l 'envers 'avec les grands arcs inversés, ces arc ont été coservés après la création du coeur '-------------------------- Set bloc_pied = ThisDrawing.Blocks.Add(pt_insertion, "pied") 'miroir arc3 pour obtenir l 'inverse 'en utisant comme point de la ligne de symétrie les extrémités de arc3 Set arc(2) = arc(3).Mirror(arc(3).StartPoint, arc(3).EndPoint) 'supprime arc3 arc(3).Delete 'miroir arc2 pour obtenir l 'inverse Set arc(3) = arc(2).Mirror(arc(0).StartPoint, pt_insertion) 'transforme en region '--------------------------- 'pour faire une région, il faut une liste d' objets 'pour le nombre d' objets nécessaires à créer la région 'une region est dans une variable de type variant 'mettre les arcs dans la liste For fois2 = 0 To 3 Set liste_obj(fois2) = arc(fois2) Next 'la region dans la variable variant region = ThisDrawing.ModelSpace.AddRegion(liste_obj) 'recupération de la region qui est la première et 'la seule crée présente dans la variable region 'il peut donc éventuellement y en avoir plusieurs Set piedepique = region(0) 'retournement par rotation piedepique.Rotate arc(3).StartPoint, DenR(180) piedepique.Move arc(3).StartPoint, pt_insertion ' définition de la hachure nom_motif = "SOLID" hachure_type = acHatchPatternTypePreDefined associatif = True ' création de la hachure Set hachure = ThisDrawing.Blocks("pied").AddHatch(hachure_type, nom_motif, associatif) Set contour_hachure(0) = piedepique ' ajouter le contour et afficher la hachure hachure.AppendOuterLoop (contour_hachure) hachure.Evaluate hachure.color = acByLayer ThisDrawing.Regen True 'suppression des arcs maintenant inutiles, et du contour For fois2 = 0 To 3 arc(fois2).Delete Next piedepique.Delete End Sub Public Sub pique() '-------------------------- ' il s' agit ici d'un sous programme qui crée l' as de pique depuis les 2 blocs précédents '-------------------------- Set bloc_pique = ThisDrawing.Blocks.Add(pt_insertion, "pique") Set ref_pied = ThisDrawing.Blocks("pique").InsertBlock(pt_insertion, "pied", 0.8, 0.8, 0.8, 0) pt_insertion(1) = (3 * ray) + (ray / 2) Set ref_coeur = ThisDrawing.Blocks("pique").InsertBlock(pt_insertion, "coeur", 1, 1, 1, DenR(180)) pt_insertion(1) = 0 End Sub Public Sub trefle() '-------------------------- ' il s' agit ici d'un sous programme qui crée l 'as de trèle depuis les 2 premiers blocs '-------------------------- Set bloc_trefle = ThisDrawing.Blocks.Add(pt_insertion, "trefle") Set ref_coeur = ThisDrawing.Blocks("trefle").InsertBlock(pt_insertion, "coeur", 0.5, 0.5, 0.5, DenR(-100)) 'fait un réseau de 3 reseau = ref_coeur.ArrayPolar(3, DenR(200), pt_insertion) Set ref_pied = ThisDrawing.Blocks("trefle").InsertBlock(pt_insertion, "pied", 0.8, 0.8, 0.8, 0) End Sub
  25. Bonjour Je propose un nouveau challenge auquel j'ai déjà donné la solution. Donc merci de ne pas tricher ;) Le but serait de savoir si un fichier dwg est déjà ouvert et si oui, par qui. @+
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité