Rechercher dans la communauté
Affichage des résultats pour « challenge » dans sujets.
502 résultats trouvés
-
Petit challenge de manipulation de chaine
DenisHen a répondu à un(e) sujet de DenisHen dans Programmer en s'amusant
Désolé... Mais tu peux lancer ce challenge en VBA... -
Petit challenge de manipulation de chaine
DenisHen a répondu à un(e) sujet de DenisHen dans Programmer en s'amusant
Salut Curlygoth. Non, désolé, pas de VBA, et pour l'itération ou la boucle, c'est toi qui vois, il faut un minimum de ligne de code... C'est le challenge. ;) -
Le Yeti sport Tour Challenge 2004 est arrivé. Allez voir ici [Edité le 9/8/2004 par Oli553] [Edité le 9/8/2004 par Oli553]
-
Hors challenge, dans l'esprit de ce qu'a donné bonuscad : (defun doublon (l) (or (vl-some '(lambda (x) (member x (cdr (member x l)))) l)) ) L'utilisation de (or ...) sert juste à renvoyer T au lieu de la première occurrence de (member x (cdr (member x l))). C'est uniquement pour respecter une règle du challenge, et ça serait inutile dans un autre cadre : pour les conditionnelles LISP tout ce qui n'est pas nil est considéré comme vrai.
-
Bonjour, Je me lance dans différents "challenge" pour la programmation de modules sur autocad (en VBA car je sais que vous n'aimez pas ça XD). J'ai réussi à calculer les longueurs de certains réseaux dans un polygone, et extraire les longueurs qui sont à l’intérieur dans un tableur (oui un peu comme pour les IC-OL)... Mais, il m'arrive parfois de travailler sur des dessin dwg très (trop) grand et plûtot que de mettre en reference mes fonds de plan et de les délimiter (rassurez vous c'est ce que je fais mais bon là : c'est pour le jeu). Les règles : Créer une forme : Tous les objets en contact avec cette polyligne seront coupées ! Tout ce qui est à l'extérieur de cette forme sera effacer ! Avancement : 1°) Détecter les objets dans une polyligne 2°) Couper les intersections 3°) Supprimer les objets à l'exterieur 4°) PRET ! 5°) J'ai aperçu un petit problème ! vous pouvez le télécharger pour voir où est le bug si le coeur vous en dit ! A appeler : SUPP_EXT_FEN.dvb!SUPP_EXT_FEN.SUPP_EXT_FEN SUPP_EXT_FEN.zip
-
Equivalent AutoCAD MAP + BIM + ArcGIS + Covadis/Mensura
lecrabe a répondu à un(e) sujet de William44850 dans IntelliPlus, IntelliCAD, CadIdesk
Hello Franchement cela va être un challenge très difficile ! LA SANTE, Bye, lecrabe ... Retraite J27 ... -
RECRUTEMENT ! Projeteur ELECTRICITE CFO/CFA CDI
lucasaubureau a posté un sujet dans Emploi, monde du travail
Bonjour la communauté! ;) Je suis à la recherche d’un coéquipier! PROJETEUR BUREAU D'ETUDES ELECTRICITE CFO-CFA POSTE A POURVOIR RAPIDEMENT- CDI - MOUANS SARTOUX (06) Vous intégrez une entreprise spécialisée dans l’électricité secteur Industriel et tertiaire, rayonnant en région PACA, filiale d’un grand groupe du BTP. Rattaché au responsable du bureau d'études, et en lien avec les chargés d'affaires et conducteurs de travaux, vous aurez en charge les études d’exécution des opérations qui vous seront confiées. Vous savez appréhender un cahier des charges et intégrer les contraintes normatives et réglementaires d’un projet. Vous êtes capable de participer, voire d’animer un réunion de synthèse. Au quotidien, vous aurez à réaliser les relevés sur sites, concevoir les plans d'implantation, schémas unifilaires et multifilaires, réaliser les notes de calculs de câbles et protections, définir et spécifier les matériels électriques à mettre en œuvre, proposer des solutions techniques économiques. Vous avez une expérience de 3 ans minimum sur un poste similaire (domaine électricité BT courants forts/faibles) avec une connaissance idéalement dans l'automatisme, la HTA, industrie et/ou tertiaire. Vous avez une bonne connaissance technique des normes C15-100, C15-211, C14-100, C13-100, C13-200, C17-100, C17-200, règlement ERP, NFS etc... Vous maitrisez AUTOCAD, CANECO BT et Dialux. SEE ELECTRICAL, REVIT et CANECO EP serait un plus. Vous avez le sens de l'engagement et le goût du challenge, rejoignez une équipe dynamique dans un espace de travail privilégié. Horaires flexibles en journée du lundi au vendredi. Le boss est super cool :D :D Rémunération selon profil et expérience + avantages. https://fes-career.talent-soft.com/offre-de-emploi/emploi-projeteur-electricite-tertiaire-_368.aspx Adressez-moi un CV avec vos prétentions, j'étudie toutes les candidatures, et encore plus celles qui viennent du Forum. l.raillard@satelec.fayat.com -
Trie Interrogations ? (vl-sort list compaison-function)
(gile) a répondu à un(e) sujet de VDH-Bruno dans Débuter en LISP
Salut, Une réponse basée sur quelques challenges LISP. Pour dénombrer le nombre d'éléments identiques dans une liste : Challenge 3 On avait noté le fonctionnement bizarre de vl-sort dans le challenge 13 et bien joué avec des routines de tri qui ne suppriment pas les doublons dans le challenge 20. Pour répondre au problème en utilisant la routine test3 du challenge 3 (modifiée pour inverser l'ordre des paires pointées) et la routine tri d'Evgeniy Elpanov dans le challenge 20 ;; tri (Evgeniy Elpanov) ;; comme vl-sort mais sans supprimer les doublons (defun tri (lst fun) (mapcar (function (lambda (x) (nth x lst))) (vl-sort-i lst fun) ) ) (defun Tri&Comp (lst / sub) (defun sub (lst n) (if (cadr lst) (if (equal (car lst) (cadr lst)) (sub (cdr lst) (1+ n)) (cons (cons n (car lst)) (sub (cdr lst) 1)) ) (list (cons n (car lst))) ) ) (sub (tri lst ') PS : pour les smileys, il suffit de cocher la case "Désactiver les smileys?" -
Bonjour, je relance la discussion sur le triangle impossible, sous la forme d'un challenge à réaliser avec le logiciel Fusion 360 (disponible depuis peu en français).
-
Coucou ce sujet a été résolu par des "grands" de la programmation, je ne suis pas certain que débuter avec ce genre de challenge soit une vraie bonne idée un exemple de liste contenant des listes, pas le meilleur exemple mais un exemple : (setq a '( 10 20 30 40)) (setq nom "contour1") (cons (list (list a nom)) (list (list a nom))) renvoie ((((10 20 30 40) "contour1")) ((10 20 30 40) "contour1"))
-
[RESOLU] Est -il possible de refaire une boucle avec tblnext?
didier a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Coucou Il est possible que tu sois irrité, sache que ce n'est pas une volonté de nuire ou de se moquer L'important c'est la progression régulière Est-ce que ton souci est résolu ? Si oui -> passons au prochain challenge Si non -> reviens poser des questions pour qu'on te guide. Amicalement -
Création forum pour dessinateurs indépendants
jeremy69 a répondu à un sujet dans Emploi, monde du travail
Hello à tous !!!! Voila je me présente, Jérémy, 26 ans dessinateur en menuiserie aluminium / Façade et Métallerie / Serrurerie. J'ai le projet de devenir dessinateur indépendant d'ici 1 ans / 1 ans et demie et je voulais avoir votre avis la dessus. J'ai 4 ans d'expérience dans une entreprise de métallerie et 1 ans dans une société de menuiserie aluminium / façade. Je doit admettre que j'ai de plus en plus de mal de travailler dans un bureau d'étude dans une entreprise : Toujours critiqué, toujours des bons à rien (travail super facile soit disant), peux de reconnaissance de la part de la direction etc etc ... Actuellement je touche 2500€ Brut ce qui donne environs 1900€ net avec la prise en charge de la mutuelle. J'aimerai devenir mon propre patron afin de travailler pour moi et non pour quelqu'un d'autre, c'est un challenge qui me motivent bien (chercher des clients, dessiner etc etc...). En sachant que je sais que si je démissionne avec ce type de projet je peux toucher le chômage. Je resterai encore je pense une bonne année dans mon entreprise actuelle pour acquérir un max de connaissance. J'aimerai avoir des avis de personne qui se sont lancé comme j'aimerai le faire. Est-ce difficile ? Bonne idée ? Cordialement. Jérémy ! -
vl-sort et liste de chaîne de caractères
(gile) a répondu à un(e) sujet de Luna dans Débuter en LISP
Même si je trouve curieux de trier une liste avec des formats différents, le challenge est intéressant. Une version polyvalente : (defun sort-list (lst fun ignoreCase) (mapcar '(lambda (i) (nth i lst)) (vl-sort-i (mapcar '(lambda (s / m) (if (setq m (RegExpExecute s "(^.+\\D)?(\\d+$)" nil nil)) (cond ((caddar m)) ; "A1" -> ("A" "1") (T (list "" (caar m))) ; "12" -> ("" "12") ) (list s "") ; "AB" -> ("AB" "") ) ) (if ignoreCase (mapcar 'strcase lst) lst ) ) '(lambda (a B) (if (= (car a) (car B)) (apply fun (list (atoi (cadr a)) (atoi (cadr B)))) (apply fun (list (car a) (car B))) ) ) ) ) ) Exemple : _$ (setq lst '("0_M8" "12" "A" "0_M12" "bar" "85" "2" "0_M6" "foo" "P")) ("0_M8" "12" "A" "0_M12" "bar" "85" "2" "0_M6" "foo" "P") _$ (sort-list lst '< T) ("2" "12" "85" "0_M6" "0_M8" "0_M12" "A" "bar" "foo" "P") _$ (sort-list lst '> nil) ("foo" "bar" "P" "A" "0_M12" "0_M8" "0_M6" "85" "12" "2") -
Re, Même si l’intérêt de tout ceci n’est pas fondamental, j’espérais réussir à enrichir un peu ce fil.. Mais par manque de disponibilité, je ne pense pas développer plus ma réponse, malgré tout je propose en vrac quelques réflexions que je m’étais déjà fait sur cette question: Parfois la possibilité de définir des fonctions sous forme de liste autre qu’avec defun, defun-q et lambda permet de façon ludique, d’écrire un code plus concis (et pas que plus crypté). A titre d’exemple la revisite d’un ancien challenge, sur TheSwamp où des solutions pour porter la fonction let dans AutoLISP sont proposées. Code que l’on pourrait facilement réécrire comme ceci (defun let (bindings body) (apply '(list (mapcar 'car bindings) body) (mapcar 'cadr bindings))) _$ (let '((x 3) (y 10)) '(+ x 10 (* x y))) 43 On peut noter la possibilité d’étendre la fonction vl-propagate aux fonctions, en les définissant en setq. _$ (vl-propagate 'let) ;Fonction définie avec defun ou defun-q ; erreur: Visual LISP: Objet d'importation/exportation entre documents non conforme #<USUBR @14c23d48 LET> _$ (setq let '((bindings body) (apply '(list (mapcar 'car bindings) body) (mapcar 'cadr bindings)))) ((BINDINGS BODY) (APPLY (QUOTE (LIST (MAPCAR (QUOTE CAR) BINDINGS) BODY)) (MAPCAR (QUOTE CADR) BINDINGS))) _$ (vl-propagate 'let) ((BINDINGS BODY) (APPLY (QUOTE (LIST (MAPCAR (QUOTE CAR) BINDINGS) BODY)) (MAPCAR (QUOTE CADR) BINDINGS))) A+
-
L'idée de faire un challenge sur un bloc paramétrique sur AutoCAD est dans l'air, mais peut être pas avec ce bloc.
-
Lili, La P3 c'est la piste 3 d'Orly dont la reconstruction totale a commencé fin juillet et sera rendu à l'exploitation civile le 2 décembre. C'est un gros chantier : 75 millions d'euros, 700 personnes de chez COLAS mobilisées pour réussir le challenge en 19 semaines. J'interviens en tant que contrôle externe pour ADP afin de vérifier toute la géométrie (pente/altimétrie/épaisseur) de chaque couche + tous les marquages et toutes les implantations de luminaire de balisage... Ça fait un peu de boulot quand même. Olivier
-
Hachure avec couleurs differentes
lecrabe a répondu à un(e) sujet de Cyrchap dans LISP et Visual LISP
Hello DONC si maximum 6 contours voisins d'un quelconque contour alors il te faut 7 couleurs !? As tu une idee de ce nombre fatidique ?? Cela me parait etre un challenge interessant pour Gilles / Bruno / Patrick et autres "PROs" de la programmation !? Cela a peut etre ete deja publie sur TheSwamp !? Bye, lecrabe -
Creer un Arc tangent à deux Elements et qui passe par un point donne
(gile) a répondu à un(e) sujet de lecrabe dans Routines LISP
Revenons à nos moutons. Tout d'abord un grand bravo à ceux qui s'accrochent en LISP. Je pense que challenge est difficile mais très intéressant. De mon côté j'ai un peu avancé, ça fonctionne désormais avec les droites, les demi-droites, les lignes et les segments droits de polyligne (toujours dans le plan XY du SCG). J'ai aussi essayé de rendre le code plus robuste pour pouvoir gérer tout éventualité et préparer le terrain pour les arcs (même s'il n'est pas sûr que je le fasse). Plutôt que de déterminer l'arc généré en fonction des points de sélection des segments (comme semble le faire Microstation) j'ai préféré proposer la possibilité de parcourir les différentes solutions (uniquement 2 pour les segments droits) en validant l'option par défaut : "arc Suivant". Pour ceux qui veulent tester, télécharger et installer ArcExtensionSetup.msi. (Nouvelle version compatible avec AutoCAD 2025+) -
Creer un Arc tangent à deux Elements et qui passe par un point donne
didier a répondu à un(e) sujet de lecrabe dans Routines LISP
Coucou Je suis parti dans les mêmes directions que Zebulon_ Je n'ai pas encore terminé mais je viendrai proposer ma solution terminée Merci du challenge, merci du partage Ça m'a donné l'idée de faire un menu spécifique aux "arcs" sur da-code.fr car il y a de la matière à creuser... Amicalement -
Bonjour, Je pense que tout le monde connait 2048 Pour le fun, j'ai tenté de le réécrire en lisp. Par rapport à l'original il présente certainement un comportement un peu différent; j'ai développé mon propre algorithme, mais il est jouable. Il y a certainement mieux, donc le challenge est lancé, pour ma part j'avais pensé que ce serait assez simple mais je me suis trompé, je suis passé par un phase de test assez fastidieuse pour la mise au point. Vos avis? Vos propositions?! ;; C:GAME2048 ;; Un clone en AutoLisp inspiré de https://gabrielecirulli.github.io/2048/ ;; par Bruno VALSECCHI Decembre 2017 ;; ;; Joindre les nombres de même valeur jusqu'à obtenir la tuile 2048! ;; ;; Utiliser les touches 2 4 6 8 du pavé numérique pour déplacer les tuiles vers le bas, gauche, droite, haut ;; (defun randomize (v1 v2 / ) (if (not v_sd) (setq v_sd (getvar "DATE")) ) (setq v_sd (rem (+ (* 25173 v_sd) 13849) 65536)) (+ (* (/ v_sd 65536) (- (max v1 v2) (min v1 v2))) (min v1 v2)) ) (defun vl-position-multi (el l / n l_id l_n) (setq n 0 l_id (mapcar '(lambda (x) (equal x el)) l) ) (repeat (length l_id) (if (car l_id) (setq l_n (cons n l_n))) (setq n (1+ n) l_id (cdr l_id)) ) (reverse l_n) ) (defun draw_map (statut_map / lm_col lt_col tmp lx ly dxf_m dxf_t x y) (setq lm_col '((0 . 252) (2 . 255) (4 . 53) (8 . 31) (16 . 30) (32 . 20) (64 . 22) (128 . 42) (256 . 52) (512 . 40) (1024 . 32) (2048 . 2))) (setq lt_col '((0 . 252) (2 . 250) (4 . 250) (8 . 255) (16 . 255) (32 . 255) (64 . 255) (128 . 255) (256 . 255) (512 . 255) (1024 . 255) (2048 . 1))) (setq tmp map) (setq lx (mapcar 'car tmp) ly (mapcar 'cdr tmp)) (foreach dxf_mask lst_mask (setq dxf_m (entget (cdr dxf_mask))) (mapcar '(lambda (xi yi / x y) (setq x xi y yi) (entmod (subst (cons 10 (list (cdr x) (car x) 0)) (assoc 10 dxf_m) dxf_m ) ) (entmod (subst (cons 11 (list (1+ (cdr x)) (car x) 0)) (assoc 11 dxf_m) dxf_m ) ) (entmod (subst (cons 12 (list (cdr x) (1+ (car x)) 0)) (assoc 12 dxf_m) dxf_m ) ) (entmod (subst (cons 13 (list (1+ (cdr x)) (1+ (car x)) 0)) (assoc 13 dxf_m) dxf_m ) ) (entmod (subst (cons 62 (cdr (assoc y lm_col))) (assoc 62 dxf_m) dxf_m ) ) ) (list (car lx)) (list (car ly)) ) (setq lx (cdr lx) ly (cdr ly)) ) (setq lx (mapcar 'car tmp) ly (mapcar 'cdr tmp)) (foreach dxf_text lst_text (setq dxf_t (entget (cdr dxf_text))) (mapcar '(lambda (x y / x y) (entmod (subst (cons 11 (list (+ 0.5 (cdr x)) (+ 0.5 (car x)) 0)) (assoc 11 dxf_t) dxf_t ) ) (entmod (subst (cons 1 (itoa y)) (assoc 1 dxf_t) (subst (cons 62 (cdr (assoc y lt_col))) (assoc 62 dxf_t) dxf_t ) ) ) ) (list (car lx)) (list (car ly)) ) (setq lx (cdr lx) ly (cdr ly)) ) (command "_.TEXTTOFRONT" "_Text") ) (defun evaluate_push (l count / l) (setq l (reverse (vl-remove 0 l))) (if (cdr l) (cond ((and (eq (car l) (cadr l)) (<= (+ (car l) (cadr l)) count)) (evaluate_push (reverse (cons (+ (car l) (cadr l)) (cddr l))) count) ) (T (evaluate_push (reverse (cdr l)) count) (setq nwl (cons (car l) nwl)) ) ) (setq nwl (cons (car l) nwl)) ) (reverse (if (car nwl) nwl '(0))) ) (defun push (k / lst tmp nwl) (setq map-n map) (cond ((eq k 50) (setq lst '("C-U3" "C-U2" "C-U1" "C-U0")) ) ((eq k 52) (setq lst '("R-R0" "R-R1" "R-R2" "R-R3")) ) ((eq k 54) (setq lst '("R-L3" "R-L2" "R-L1" "R-L0")) ) ((eq k 56) (setq lst '("C-D0" "C-D1" "C-D2" "C-D3")) ) ) (foreach n lst (setq tmp (mapcar 'cdr (mapcar '(lambda (x) (assoc x map)) (eval (read n)))) nwl nil) (setq nwl (evaluate_push tmp (* (if (member (apply 'max tmp) (cdr (member (apply 'max tmp) tmp))) 2 1) (apply 'max tmp)))) (if (not (eq (length (vl-remove 0 nwl)) 4)) (progn (repeat (- (length tmp) (length (setq nwl (vl-remove 0 nwl)))) (setq nwl (cons 0 nwl)) ) nwl ) nwl ) (setq tmp (mapcar '(lambda (x) (assoc x map)) (eval (read n)))) (foreach n (mapcar '(lambda (x y) (cons x y)) (mapcar 'car (mapcar '(lambda (x) (assoc x map)) (eval (read n)))) nwl) (setq map (subst n (assoc (car n) map) map)) ) ) ) (defun c:Game2048 ( / v_sd mat_game map lst_mask lst_text nw_pos key before after win loose) (foreach n '("R-L0" "R-L1" "R-L2" "R-L3" "R-R0" "R-R1" "R-R2" "R-R3") (set (read n) nil)) (foreach n '("C-U0" "C-U1" "C-U2" "C-U3" "C-D0" "C-D1" "C-D2" "C-D3") (set (read n) nil)) (setq mat_game '( (3 . 0) (3 . 1) (3 . 2) (3 . 3) (2 . 0) (2 . 1) (2 . 2) (2 . 3) (1 . 0) (1 . 1) (1 . 2) (1 . 3) (0 . 0) (0 . 1) (0 . 2) (0 . 3) ) ) (mapcar '(lambda (x y) (set (read (strcat "R-R" (itoa y))) (reverse x) ) ) (mapcar '(lambda (x y) (foreach n x (set (read (strcat "R-L" (itoa y))) (cons (nth n mat_game) (eval (read (strcat "R-L" (itoa y)))) ) ) ) ) (mapcar '(lambda (x) (vl-position-multi x (mapcar 'car mat_game)) ) '(0 1 2 3) ) '(0 1 2 3) ) '(0 1 2 3) ) (mapcar '(lambda (x y) (set (read (strcat "C-D" (itoa y))) (reverse x) ) ) (mapcar '(lambda (x y) (foreach n x (set (read (strcat "C-U" (itoa y))) (cons (nth n mat_game) (eval (read (strcat "C-U" (itoa y)))) ) ) ) ) (mapcar '(lambda (x) (vl-position-multi x (mapcar 'cdr mat_game)) ) '(0 1 2 3) ) '(0 1 2 3) ) '(0 1 2 3) ) (setq map (mapcar '(lambda (n / ) (cons n 0)) mat_game)) (entmake '( (0 . "STYLE") (100 . "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "2048") (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 0.5) (3 . "arial.ttf") (4 . "") ) ) (setvar "TEXTSTYLE" "2048") (setvar "CMDECHO" 0) (command "_.zoom" "_window" "_none" '(0 0) "_none" '(4 4)) (foreach n map (entmake (list '(0 . "SOLID") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "0") '(62 . 252) '(100 . "AcDbTrace") (cons 10 (list (cdar n) (caar n) 0)) (cons 11 (list (1+ (cdar n)) (caar n) 0)) (cons 12 (list (cdar n) (1+ (caar n)) 0)) (cons 13 (list (1+ (cdar n)) (1+ (caar n)) 0)) '(39 . 0.0) '(210 0.0 0.0 1.0) ) ) (setq lst_mask (cons (assoc -1 (entget (entlast))) lst_mask)) (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "0") '(62 . 252) '(100 . "AcDbText") (cons 10 (list (+ (cdar n) 0.19423602) (+ (caar n) 0.25) 0)) '(40 . 0.5) '(1 . "0") '(50 . 0.0) '(41 . 0.65) '(51 . 0.0) '(7 . "2048") '(71 . 0) '(72 . 1) (cons 11 (list (+ (cdar n) 0.5) (+ (caar n) 0.5) 0)) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 2) ) ) (setq lst_text (cons (assoc -1 (entget (entlast))) lst_text)) ) (setq nw_pos (cons (cons (read (rtos (randomize 0 3) 2 0)) (read (rtos (randomize 0 3) 2 0)) ) (* 2 (read (rtos (randomize 1 2) 2 0))) ) ) (if (or (zerop (cdr (assoc (car nw_pos) map))) (eq (cdr (assoc (car nw_pos) map)) (cdr nw_pos)) ) (setq map (subst (cons (car nw_pos) (+ (cdr nw_pos) (cdr (assoc (car nw_pos) map)))) (assoc (car nw_pos) map) map)) ) (draw_map map) (print) (while (and (setq key (grread T 4 0)) (not loose)) (if (member (cadr key) '(50 52 54 56)) (progn (setq before (mapcar 'cdr map)) (push (cadr key)) (if (member 2048 (mapcar 'cdr map)) (progn (setq win T) (alert "GAGNE"))) (setq after (mapcar 'cdr map)) (cond ((not (equal before after)) (while (not (zerop (cdr (assoc (car (setq nw_pos (cons (cons (read (rtos (randomize 0 3) 2 0)) (read (rtos (randomize 0 3) 2 0)) ) (* 2 (read (rtos (randomize 1 2) 2 0))) ) ) ) map ) ) ) ) ) (if (or (zerop (cdr (assoc (car nw_pos) map))) (eq (cdr (assoc (car nw_pos) map)) (cdr nw_pos)) ) (setq map (subst (cons (car nw_pos) (+ (cdr nw_pos) (cdr (assoc (car nw_pos) map)))) (assoc (car nw_pos) map) map)) ) (draw_map map) ) (T (if (not (member 0 (mapcar 'cdr map))) (setq loose T))) ) ) ) ) (if (not win) (alert "PERDU")) (command "_.ERASE" "_All" "") (setvar "TEXTSTYLE" "Standard") (setvar "CMDECHO" 1) (foreach n '("R-L0" "R-L1" "R-L2" "R-L3" "R-R0" "R-R1" "R-R2" "R-R3") (set (read n) nil)) (foreach n '("C-U0" "C-U1" "C-U2" "C-U3" "C-D0" "C-D1" "C-D2" "C-D3") (set (read n) nil)) (prin1) ) Bien sur, à tester/utiliser dans un dessin vierge (hors session de travail, des bugs bloquants restent possibles)
-
Voici un challenge pour débutants. Ici, les habitués du lisp peuvent répondre en 10 secondes... Mais là n'est pas le but de ce challenge. Pour l'instant la plupart des challenges proposés sont relevés par les habitués et qq débutants. Personne ne se lance, et c'est pourtant le but de ces challenges ! Donc voilà. test avec un challenge simple. Le but est de progresser donc n'hésitez pas ! Voici donc : Créer une routine qui affiche le nom du calque d'une entité sélectionnée. Bon pour l'instant on se contente de faire une routine sans argument. Voilà. PS : Lovecraft, tu comprendras qu'il n'est pas nécessaire pour toi de répondre à ce challenge, tu n'est pas un débutant ! :) Tu peux par contre te pencher sur une routine avec argument ! Voilà ! Bon courage.
-
Comme annoncé dans une actualité du 3 mars 2014, l'entreprise Fab21 a organisé le 1er week-end du design industriel sur son site de Fumay les 14 15 et 16 mars 2014. Organisé en partenariat avec Visiativ et Lynkoa, ce week-end a rassemblé 40 étudiants designers, 4 designers professionnels et de nombreuses personnalités. http://ftp.lynkoa.com/images/challenge_fab21_lynkoa.png Nous avons également retenu trois esquisses pour les présenter à la communauté Lynkoa sous forme de challenge. A cette occasion, Fab21 met en jeu 1 000 € par challenge pour récompenser les meilleurs dessins, et garantit des royalties au concepteur de chaque modèle CAO débouchant sur une industrialisation et une commercialisation. Tous les détails ici
-
Challenge récursive.
VDH-Bruno a répondu à un(e) sujet de Patrick_35 dans Pour aller plus loin en LISP
Bonjour, Sur ce challenge la porte du récursif ayant été verrouillé par les précédents intervenants. On peut s'autoriser une petite optimisation (si on est pas trop attaché au style) sur "la solution hors sujet" en économisant des parcours sur la liste du au 2ème member dans (member x (cdr (member x l))). vl-some comme mapcar étant des fonctions d'ordre supérieur, a l'appel de ces fonctions l'argument liste est chargé en mémoire, on peut donc à chaque itération "muter" son état dans la fonction argument en écrivant ceci: (defun doublon (l) (or (vl-some '(lambda (x) (member x (setq l (cdr l)))) l)) ) A+ Bruno -
Bonjour, Très rapidement, juste pour le plaisir de proposer une autre écriture récursive sur la façon de parcourir une arborescence, si on ne veut pas passer par des solutions écrites avec mapcar (très en retard sur le challenge, des versions sont déjà proposé par Patrick_35 & (gile)). (defun GetFolders (dir / directory files) (defun directory (dir) (cons dir (files (vl-remove "." (vl-remove ".." (vl-directory-files dir nil -1))))) ) (defun files (rep) (if rep (append (directory (strcat dir "\\" (car rep))) (files (cdr rep))) ) ) (directory dir) ) A+ Bruno
-
Merci, Gile, je commence à comprendre mon erreur, je vais refaire des essais en le plaçant différemment et peux etre 2 fois comme le cddr. Car si cette dernière fonctionne, c'est pour moi une pirouette (suis habitué :(rires forts): ). Dans le sens que c'est grâce au placement de l’élément dans la liste, mais pas grâce à son contenu. Si on ne voulais pas un dossier contenant temp par exemple, la on est pas bien... Je suis loin d’être un perfectionniste, mais ce genre de challenge sont de bon prétexte didactique. A plus tard pour une nouvelle version. (si je m'en sort, vais pas passé l'été la dessus non plus...)
