乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 101|回复: 15

[编程交流] 绘图者游戏

[复制链接]

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 15:37:42 | 显示全部楼层 |阅读模式
工作(草稿)更多,代码更少。。。
我必须做点什么来激励自己在绘图上多做些工作,不要被编码分心。
那么我的解决方案是什么
我写了一个生成ranklist的例程,当我画更多的时候(使用命令调用或lisp调用),它会增加我的秩-多么讽刺。
编写(汇编)该代码很有趣,其目的是提高绘图效率。
然而,我没有经过测试,所以我不知道对于每一个困难,分数是太多还是太少,以及它会有多上瘾-只是想实现我的这个想法。
 
  1. ; --- [The Drafter's Game] -----------------------------------------------------------------------------
  2. ; Drafter/Draughtsman score game
  3. ; Its using a reactor to count how many commands-calls or lisp-calls you have invoked in that drawing,
  4. ; hence increasing your score and position in the ranklist (and your drafting productivity - which is the whole purpose BTW)
  5. ; The Rank List is DWG dependent - which means individual rank per project
  6. ; Included a final boss - "The Drafter" on the < Extreme > difficulty
  7. ; Written by: Grrr
  8. ; Credits to: Lee Mac
  9. ;-------------------------------------------------------------------------------------------------------
  10. ; --- [ Technically speaking (for the lisp heads) ] -------------------------------------------------------------------------------------------------------------
  11. ; The routine uses: DCL, Reactors, Dictionaries'n'xRecords, Randomizing subfunctions
  12. ; It stores the list statistics data inside the first and only (1 . <dataL>) group code,
  13. ; located inside a xrecord in a dictionary with a name "DrafterGame", which is inside the (namedobjdict)
  14. ; So that means the Statistics/Rank List is DWG Dependent (which means individual ranklist for the different projects)
  15. ; The reactor's events and callback functions are:
  16. ; (:VLR-lispWillStart . DG:BeginLsp) (:VLR-lispEnded . DG:EndLsp) (:VLR-lispCancelled . DG:EndLsp) (:VLR-commandWillStart . DG:BeginCmd)
  17. ; The callback functions are written as simple as possible (depending on their events) - in order to prevent any slow-down of the working(drafting) process
  18. ; *DrafterGame* is a global counter variable, to not slow down the working proccess (for each event to dig into the xDictionary and subst the list.. bla-bla)
  19. ; *DGstopCounter* is a global boole variable, This boolean prevents counting command calls inside lisp routine, to prevent cases like this:
  20. ;|
  21. (defun C:test ( / )
  22. (repeat 500 (command "_.point" "0,0,0"))
  23. (princ "\nCreated 500 points.")
  24. (princ)
  25. )
  26. |;
  27. ; ---------------------------------------------------------------------------------------------------------------------------------------------------------------
  28. (defun C:DraftersGame ( / *error* dcl des dch dcf )
  29. (DG:Statistics nil)
  30. (defun *error* ( msg )
  31.    (and (< 0 dch) (unload_dialog dch))
  32.    (and (eq 'FILE (type des)) (close des))
  33.    (and (eq 'STR (type dcl)) (findfile dcl) (vl-file-delete dcl))
  34.    (and msg (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\nError: " msg)))) (princ)
  35. ); defun *error*
  36. (cond
  37.    (
  38.      (not
  39.        (and (setq dcl (vl-filename-mktemp nil nil ".dcl")) (setq des (open dcl "w"))
  40.          (mapcar (function (lambda (x) (princ (strcat "\n" x) des)))
  41.            '("DraftersGame : dialog "
  42.              "{ label = "Drafter Statistics";"
  43.              "  spacer_1;"
  44.              "  : list_box { key = "LB"; width = 20; height = 20; tabs = "18"; tab_truncate = false; }"
  45.              "  : button { key = "res"; label = "Reset Statistics"; fixed_width = true; alignment = centered; }"
  46.              "  : button { key = "info"; label = "Info / About"; fixed_width = true; alignment = centered; }"
  47.              "  spacer_1; ok_only; : text { key = "txt"; alignment = centered; } "
  48.              "}"
  49.            ); list
  50.          ); mapcar
  51.          (not (setq des (close des))) (< 0 (setq dch (load_dialog dcl)))
  52.        ); and
  53.      ); not
  54.      (prompt "\nUnable to write or load the DCL file.")
  55.    )
  56.    (
  57.      (progn
  58.        (defun ord ( n ) (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th"))) ; LM
  59.        (while (not (member dcf '(0 1)))
  60.          (cond
  61.            ( (not (new_dialog "DraftersGame" dch)) (prompt "\nUnable to display the dialog") (setq dcf 0) )
  62.            (T
  63.              (DG:Statistics nil) ; Looks for the score, or generates a new one | returns the score
  64.              (DG:BeginSave nil nil) ; Just call the frekin' reactor's callback function to update the ranklist
  65.              (
  66.                (lambda ( xRec / L nL nm sc i )
  67.                  (and
  68.                    (setq L (GetDataFromMainDic xRec))
  69.                    (setq nL
  70.                      (mapcar
  71.                        (function
  72.                          (lambda (x / a b )
  73.                            (setq a (car x)) (setq b (cdr x))
  74.                            (strcat a "\t" (itoa b))
  75.                          ); lambda
  76.                        ); function
  77.                        L
  78.                      ); mapcar
  79.                    ); setq nL
  80.                    (progn
  81.                      (start_list "LB") (mapcar 'add_list nL) (end_list)
  82.                      (setq nm (strcat (getvar 'loginname) " [You]"))
  83.                      (setq sc (cdr (assoc nm L)))
  84.                      (setq i (1+ (vl-position (cons nm sc) L)))
  85.                      (set_tile "LB" (itoa (1- i)))
  86.                      (set_tile "txt"
  87.                        (if (= 1 i)
  88.                          "• You won 1st place! •"
  89.                          (strcat "Your rank is " (itoa i) (ord i))
  90.                        )
  91.                      ); set_tile "txt"
  92.                    ); progn
  93.                  ); and
  94.                ); lambda
  95.                "DraftersGame"
  96.              )
  97.              (mapcar 'action_tile '("res" "info") '("(done_dialog 2)" "(DG:Info)"))
  98.              (setq dcf (start_dialog))
  99.            ); T
  100.          ); cond
  101.          (cond
  102.            ( (= 2 dcf)
  103.              (
  104.                (lambda ( / tmp )
  105.                  (and
  106.                    (setq tmp (DG:DifficultyPrompt))
  107.                    (progn (IncludeDataIntoMainDic "DraftersGame" nil) (DG:Statistics tmp))
  108.                  ); and
  109.                ); lambda
  110.              )
  111.            ); (= 2 dcf)
  112.          ); cond
  113.        ); while
  114.        (/= 1 dcf)
  115.      ); progn
  116.    )
  117. ); cond
  118. (*error* nil) (princ)
  119. ); defun
  120. (and
  121. (defun DG:BeginLsp ( rtr arg ) ; Increase the counter and turn on the stop flag
  122.    (setq *DraftersGame* (1+ (cond (*DraftersGame*)(0))))
  123.    (setq *DGstopCounter* t) ; This boolean prevents counting command calls inside lisp routine, to prevent cases like this: (defun C:test nil (repeat 500 (command "_.point" "0,0,0")) (princ "\nCreated 500 points.") (princ) )
  124.    (princ)
  125. ); defun DG:BeginCmd
  126. (defun DG:BeginCmd ( rtr arg ) ; Check if theres a stop flag, if not then increase the counter
  127.    (if (not *DGstopCounter*) (setq *DraftersGame* (1+ (cond (*DraftersGame*)(0)))))
  128.    (princ)
  129. ); defun DG:BeginCmd
  130. (defun DG:EndLsp ( rtr arg ) ; Remove the counter, the lisp ended.
  131.    (setq *DGstopCounter* nil) (princ)
  132. ); defun DG:BeginCmd
  133. ; (defun DG:EndCmd ( rtr arg ) ; Not sure when to use it
  134. ; (princ)
  135. ; ); defun DG:BeginCmd
  136. (defun DG:BeginSave ( rtr arg / xRec L itm L )
  137.    (cond ; Check if the list exist, count and sort the results, and display them
  138.      ( (and *DraftersGame* (setq xRec "DraftersGame") (setq L (GetDataFromMainDic xRec)))
  139.        (setq itm (assoc (strcat (getvar 'loginname) " [You]") L))
  140.        (setq L
  141.          (vl-sort
  142.            (subst (cons (car itm) (+ *DraftersGame* (cdr itm))) itm L)
  143.            (function (lambda (a b) (apply '> (mapcar 'cdr (list a b)))))
  144.          ); vl-sort
  145.        ); setq L
  146.        (IncludeDataIntoMainDic xRec L)
  147.        (setq *DraftersGame* nil)
  148.      )
  149.    ); cond
  150.    (princ)
  151. ); defun DG:BeginSave
  152. (progn
  153.    (foreach rtr (cdar (vlr-reactors :VLR-Editor-reactor)) (if (= "DraftersGame" (vlr-data rtr)) (vlr-remove rtr)) )
  154.    (vlr-Editor-reactor "DraftersGame"
  155.      '(
  156.        (:VLR-lispWillStart . DG:BeginLsp)
  157.        (:VLR-lispEnded . DG:EndLsp)
  158.        (:VLR-lispCancelled . DG:EndLsp)
  159.        (:VLR-commandWillStart . DG:BeginCmd)
  160.        ; (:VLR-commandEnded . DG:EndCmd)
  161.        ; (:VLR-commandCancelled . DG:EndCmd)
  162.        ; (:VLR-commandFailed . DG:EndCmd)
  163.        (:VLR-beginSave . DG:BeginSave)
  164.      )
  165.    ); vlr-Editor-reactor "DraftersGame"
  166. ); progn
  167. ); and
  168. ; (IncludeDataIntoMainDic "DraftersGame" nil) (DG:Statistics "Novice")
  169. ; d - difficulty
  170. (defun DG:Statistics ( d / xRec fnbs r tmp ) ; Looks for the score, or generates a new one | returns the score
  171. (setq xRec "DraftersGame")
  172. (setq fnbs "The Drafter") ; Final Boss, yes I wan't one
  173. (or
  174.    (setq r (GetDataFromMainDic xRec))
  175.    (setq r
  176.      (IncludeDataIntoMainDic xRec
  177.        (append
  178.          (cond
  179.            ( (or (member d '("Novice" "Easy" "Normal" "Hard" "Extreme")) (setq d "Normal")) ; Default - Normal
  180.              (setq tmp
  181.                (cdr
  182.                  (assoc d
  183.                    '(
  184.                      ("Novice"
  185.                        10 40
  186.                        ("Billy" "Timmy" "Tonny" "Wendy" "Willy")
  187.                      )
  188.                      ("Easy"
  189.                        40 150
  190.                        ("Tom" "Joel" "Alex" "Bobby" "Clyde"
  191.                          "Dane" "Jeremy" "Kevin" "Lesley" "Phil"
  192.                        )
  193.                      )
  194.                      ("Normal"
  195.                        150 500
  196.                        ("John" "Alan" "Brian" "Mark" "Chad"
  197.                          "Richard" "Derek" "Jeff" "Tony" "Michael"
  198.                          "Frank" "Jamie" "Lindsay" "Andrey" "Dimitry"
  199.                        )
  200.                      )
  201.                      ("Hard"
  202.                        500 1000
  203.                        ("Jude Milhon" "Sam Jain" "Mixter" "HD Moore" "Joe Grand" "Christien Rioux"
  204.                          "John Draper" "Chris Lamprecht" "Aaron Swartz" "Leonard Rose" "Steve Wozniak"
  205.                        )
  206.                      )
  207.                      ("Extreme"
  208.                        1000 1700
  209.                        ("GH0UL" "C0MB0" "QU35710N" "1D0L"
  210.                          "J1NX" "5H13LD" "L16H7N1N6" "PUCK377"
  211.                          "A70M" "M1M3" "R1D3R" "L33_M4C"
  212.                        )
  213.                      )
  214.                    ); list
  215.                  ); assoc
  216.                ); cdr
  217.              ); setq tmp
  218.              (setq tmp (apply 'GenerateDrafterStatistics tmp))
  219.              (and (= d "Extreme") (setq tmp (cons (cons fnbs (fix (* 1.3 (cdar tmp)))) tmp)) tmp)
  220.              tmp
  221.            )
  222.          ); cond
  223.          (list (cons (strcat (getvar 'loginname) " [You]") 0))
  224.        ); append
  225.      ); IncludeDataIntoMainDic
  226.    ); setq r
  227. ); or
  228. r
  229. ); defun
  230. ; mins - minimum score
  231. ; maxs - maximum score
  232. ; L - List of Names
  233. ; (GenerateDrafterStatistics  1500 5000 '("John" "Alan" "Brian" "Mark" "Chad" "Richard" "Derek" "Tony" "Willy" "Frank" "Jamie" "Wendy" "Lindsay" "Andrey" "Dimitry"))
  234. (defun GenerateDrafterStatistics ( mins maxs L / )
  235. (vl-sort ; Assoc list of: '(<Name> . <Score>)
  236.    (mapcar
  237.      (function (lambda (x) (cons x (LM:randrange mins maxs))))
  238.      (RandomizeList L)
  239.    ); mapcar
  240.    (function (lambda (a b) (apply '> (mapcar 'cdr (list a b)))))
  241. ); vl-sort
  242. ); defun GenerateDrafterStatistics
  243. (defun RandomizeList ( L / itm nL )
  244. (if (vl-consp L)
  245.    (while L
  246.      (setq itm (nth (LM:randrange 0 (1- (length L))) L))
  247.      (setq nL (cons itm nL))
  248.      (setq L (vl-remove itm L))
  249.    ); while
  250. ); if
  251. nL
  252. ); defun
  253. ;; Rand  -  Lee Mac
  254. ;; PRNG implementing a linear congruential generator with
  255. ;; parameters derived from the book 'Numerical Recipes'
  256. (defun LM:rand ( / a c m )
  257. (setq m   4294967296.0
  258.    a   1664525.0
  259.    c   1013904223.0
  260.    $xn (rem (+ c (* a (cond ($xn) ((getvar 'date))))) m)
  261. )
  262. (/ $xn m)
  263. )
  264. ;; Random in Range  -  Lee Mac
  265. ;; Returns a pseudo-random integral number in a given range (inclusive)
  266. (defun LM:randrange ( a b )
  267. (+ (min a b) (fix (* (LM:rand) (1+ (abs (- a b))))))
  268. )
  269. ; (IncludeDataIntoMainDic "MyXrec" nil)
  270. ; (IncludeDataIntoMainDic "MyXrec" '("Custom" 2 "data"))
  271. ; xRecName - xrecord name
  272. ; dataL - basically any type of data (usually its a list) if nil, then the xrecord will be deleted.
  273. ; http://www.theswamp.org/index.php?topic=5003.0
  274. (defun IncludeDataIntoMainDic ( xRecName dataL / maindic xrec )
  275. (cond
  276.    ( (not (eq 'STR (type xRecName))) (prompt "\nxRecName is not STR type.") )
  277.    ( (vl-some (function (lambda (x) (wcmatch (strcase xRecName) x))) '("ACAD*" "AEC*" "Ac*")) ; Being paranoid
  278.      (prompt "\nInvalid xRecord name.")
  279.    )
  280.    (t
  281.      (setq maindic (namedobjdict))
  282.      (if (setq xrec (dictsearch maindic xRecName)) (entdel (cdr (assoc -1 xrec))))
  283.      (if dataL (dictadd maindic xRecName (entmakex (append '((0 . "XRECORD") (100 . "AcDbXrecord")) (list (cons 1 (vl-prin1-to-string dataL)))))))
  284.    ); t
  285. ); cond
  286. ); defun IncludeDataIntoMainDic
  287. ; (GetDataFromMainDic "MyXrec")
  288. ; http://www.theswamp.org/index.php?topic=5003.0
  289. (defun GetDataFromMainDic ( xRecName / tmp r )
  290. (and
  291.    (setq tmp (dictsearch (namedobjdict) xRecName))
  292.    (setq tmp (cdr (assoc 1 tmp)))
  293.    (setq r (read tmp))
  294. ); and
  295. r
  296. ); defun GetDataFromMainDic
  297. (defun DG:DifficultyPrompt ( / *error* dcl des dch dcf L r )
  298. (defun *error* ( msg )
  299.    (and (< 0 dch) (unload_dialog dch))
  300.    (and (eq 'FILE (type des)) (close des))
  301.    (and (eq 'STR (type dcl)) (findfile dcl) (vl-file-delete dcl))
  302.    (and msg (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\nError: " msg)))) (princ)
  303. ); defun *error*
  304. (cond
  305.    (
  306.      (not
  307.        (and (setq dcl (vl-filename-mktemp nil nil ".dcl")) (setq des (open dcl "w"))
  308.          (mapcar (function (lambda (x) (princ (strcat "\n" x) des)))
  309.            (list
  310.              "test : dialog "
  311.              "{ label = "Choose Difficulty"; spacer_1; "
  312.              "  : column"
  313.              "  { width = 6; children_fixed_width = false; "
  314.              (apply 'strcat
  315.                (mapcar
  316.                  (function
  317.                    (lambda (x)
  318.                      (strcat "    : button { key = "" x ""; label = "< " x " >"; alignment = centered; height = 2; }")
  319.                    )
  320.                  )
  321.                  (setq L '("Novice" "Easy" "Normal" "Hard" "Extreme"))
  322.                ); mapcar
  323.              ); apply 'strcat
  324.              "  }"
  325.              "  spacer_1; cancel_button; spacer_1; "
  326.              "}  "
  327.            ); list
  328.          ); mapcar
  329.          (not (setq des (close des))) (< 0 (setq dch (load_dialog dcl)))
  330.        ); and
  331.      ); not
  332.      (prompt "\nUnable to write or load the DCL file.")
  333.    )
  334.    ( (not (new_dialog "test" dch)) (prompt "\nUnable to display the dialog") )
  335.    (
  336.      (progn
  337.        (mode_tile "Normal" 2)
  338.        (mapcar
  339.          (function
  340.            (lambda (x)
  341.              (action_tile x "(progn (setq r $key) (done_dialog 1))")
  342.            ); lambda
  343.          ); function
  344.          L
  345.        ); mapcar
  346.        (/= 1 (setq dcf (start_dialog)))
  347.      ); progn
  348.    )
  349. ); cond
  350. (*error* nil) (princ) r
  351. ); defun
  352. (defun DG:Info ( / *error* dcl des dch dcf L nm sc i )
  353. (defun ord ( n ) (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th"))) ; LM
  354. (
  355.    (lambda ( / tmpL )
  356.      (and
  357.        (setq nm (strcat (getvar 'loginname) " [You]"))
  358.        (setq sc (cdr (assoc nm (setq tmpL (GetDataFromMainDic "DraftersGame")))))
  359.        (setq i (1+ (vl-position (cons nm sc) tmpL)))
  360.      )
  361.    )
  362. )
  363. (defun *error* ( msg )
  364.    (and (< 0 dch) (unload_dialog dch))
  365.    (and (eq 'FILE (type des)) (close des))
  366.    (and (eq 'STR (type dcl)) (findfile dcl) (vl-file-delete dcl))
  367.    (and msg (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\nError: " msg)))) (princ)
  368. ); defun *error*
  369. (cond
  370.    ( (not (and nm sc i)) (prompt "\nDG:Info: no arguments.") )
  371.    (
  372.      (not
  373.        (and (setq dcl (vl-filename-mktemp nil nil ".dcl")) (setq des (open dcl "w"))
  374.          ( ; Sorry about that - copyright stuff
  375.            '((b c a)
  376.              (mapcar ''((x) (princ (strcat "\n" x) des))
  377.                (apply ''((n m o) (append (mapcar 'vl-list->string n) m (mapcar 'vl-list->string (reverse o))))
  378.                  (mapcar 'eval (read (apply 'strcat (mapcar 'chr '(40 97 32 98 32 99 41)))))
  379.                )
  380.              )
  381.            )
  382.            (list
  383.            (strcat ": text { value = "Name: '' " nm " ''"; alignment = left; }")
  384.            (strcat ": text { value = "Rank: " (itoa i) (ord i) ""; alignment = left; }")
  385.            (strcat ": text { value = "Score: " (itoa sc) ""; alignment = left; }")
  386.            ); list
  387.            '((125)
  388.              (32 32 115 112 97 99 101 114 95 49 59 32 32 58 32 98 117 116 116 111 110 32 123 32 107 101 121 32 61 32 34 111 107 34 59 32 105 115 95 99 97 110
  389.                99 101 108 32 61 32 116 114 117 101 59 32 105 115 95 100 101 102 97 117 108 116 32 61 32 116 114 117 101 59 32 108 97 98 101 108 32 61 32 34 32
  390.                32 32 79 75 32 32 32 34 59 32 102 105 120 101 100 95 119 105 100 116 104 32 61 32 116 114 117 101 59 32 104 101 105 103 104 116 32 61 32 50 59 32
  391.                97 108 105 103 110 109 101 110 116 32 61 32 99 101 110 116 101 114 101 100 59 32 125 32 115 112 97 99 101 114 95 49 59 32
  392.              )
  393.              (32 32 125)
  394.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 67 114 101 100 105 116 115 32 116 111 58 32
  395.                76 101 101 32 77 97 99 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 99 101 110 116 101 114 101 100 59 125
  396.              )
  397.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 87 114 105 116 116 101 110 32 98 121
  398.                58 32 71 114 114 114 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 99 101 110 116 101 114 101 100 59 125
  399.              )
  400.              (32 32 123) (32 32 58 32 99 111 108 117 109 110) (32 32 115 112 97 99 101 114 95 49 59) (32 32 125) (32 32 32 32 115 112 97 99 101 114 59)
  401.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 32 32 32 32 111 114 32 99 97 108 108 32 116 104 105 115
  402.                32 100 105 97 108 111 103 32 97 103 97 105 110 46 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 108 101 102 116 59 125
  403.              )
  404.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 32 32 32 32 119 104 101 110 32 121 111 117 32 115 97
  405.                118 101 32 116 104 101 32 100 114 97 119 105 110 103 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 108 101 102 116 59 125
  406.              )
  407.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 149 32 89 111 117 114 32 115 99 111 114 101 32
  408.                119 105 108 108 32 117 112 100 97 116 101 58 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 108 101 102 116 59 125
  409.              )
  410.              (32 32 32 32 115 112 97 99 101 114 59)
  411.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 32 32 32 32 109 111 114 101 32 116 104 97 110 32 97 110 121 111 110 101
  412.                32 101 108 115 101 32 105 110 32 116 104 101 32 108 105 115 116 46 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 108 101 102 116 59 125
  413.              )
  414.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 32 32 32 32 121 111 117 32 104 97 118 101 32 116 111 32
  415.                117 115 101 32 99 111 109 109 97 110 100 32 99 97 108 108 115 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 108 101 102 116 59 125
  416.              )
  417.              (32 32 32 32 58 32 116 101 120 116 32 123 32 118 97 108 117 101 32 61 32 34 149 32 84 111 32 103 101 116 32 104 105  103 104 101
  418.                114 32 105 110 32 116 104 101 32 108 105 115 116 58 34 59 32 97 108 105 103 110 109 101 110 116 32 61 32 108 101 102 116 59 125
  419.              )
  420.              (32 32 123 32 108 97 98 101 108 32 61 32 34 71 117 105 100 101 34 59 32) (32 32 58 32 98 111 120 101 100 95 99 111 108 117 109 110) (32 32 115 112 97 99 101 114 95 49 59)
  421.              (32 32 125) (32 32 115 112 97 99 101 114 59)
  422.            )
  423.            '( (68 71 95 73 110 102 111 32 58 32 100 105 97 108 111 103 32)
  424.              (123 32 108 97 98 101 108 32 61 32 34 68 114 97 102 116 101 114 115        32 71 97 109  101 32 73 110
  425.                102 111 34 59 32 115 112 97 99 101 114 95 49 59 32 119 105 100        116 104 32 61 32 51 54 59 32
  426.              )
  427.              (32 32 58 32 98 111 120 101 100 95 99 111 108 117 109 110) (32 32 123 32        108 97 98 101 108 32 61        32 34 89 111 117 114 32        115 116 97 116 115 34 59 32)
  428.              (32 32 115 112 97 99 101 114 59)
  429.            )
  430.          )
  431.          (not (setq des (close des))) (< 0 (setq dch (load_dialog dcl)))
  432.        ); and
  433.      ); not
  434.      (prompt "\nUnable to write or load the DCL file.")
  435.    )
  436.    ( (not (new_dialog "DG_Info" dch)) (prompt "\nUnable to display the dialog") )
  437.    ( (/= 1 (setq dcf (start_dialog))) )
  438. ); cond
  439. (*error* nil) (princ)
  440. ); defun

 
 

                               
登录/注册后可看大图
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:43:57 | 显示全部楼层
干得好Grrr(但我想我会切换命令和lisp反应器来提高我的分数)thanx!
 
 
gr.Rlx
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 15:46:05 | 显示全部楼层
谢谢Rlx,
最简单的作弊方法是修改全局计数器变量,但这会破坏游戏的目的。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:51:37 | 显示全部楼层
现在我想起来了,我工作的座右铭是“更聪明地工作,而不是更努力”,所以你们的计划完全违背了公司的政策,糟糕的Grrr,我的老板可能想和你们聊一聊!
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 15:56:12 | 显示全部楼层
 
我也这么认为,但在我的国家,每个人都被迫努力工作,而不是更聪明。
这就是为什么聪明的技术人才会移民到像你们这样的国家,在那里一切都做得很好。
即使是逃犯也害怕留在这里。
就我而言,我喜欢在这里与穴居人绘图员竞争。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:58:36 | 显示全部楼层
 
很遗憾听到你们的国家不能很好地留住人才,当然当他们和你们一样有天赋的时候!你的动作是最好的!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:01:38 | 显示全部楼层
出色的工作Grrr!-做得好。
 
我看到你的AutoLISP编程技能已经快速提高,现在你定期参加各种CAD编程论坛-我希望我仍然有时间继续访问社区,并像以前一样频繁地为社区做出贡献。。。这几天工作很忙!
 
PS:“PUCK377”“L33\u M4C”我喜欢
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:07:46 | 显示全部楼层
很酷
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:11:22 | 显示全部楼层
双柱
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:11:48 | 显示全部楼层
 
不,不要感到抱歉Rlx-每个国家的功能不同,取决于其政治,因此其公民的生活水平和教育是不同的。
谢谢你的夸奖,但我只是不断地向别人学习——他们的惯例/建议/评论。
每个人都是我的榜样,我从不低估任何人,所以这是我提高的方式。特别是当创新的东西摆在桌面上,或者它涵盖了我的兴趣。
看,我想象一个像李这样的人在论坛上浏览最新信息,
然后看到新发布的400行代码,快速滚动(在喝他的茶之前)并想着“是的,我知道这个技术,我也知道那个”。
如果有什么新东西介绍给他,我想他会把它保存在自己的档案中,使用几次,这样它就会成为他“已知的技术”。
每天都有这样的传统,难怪他是如何成为今天的他。
 
 
 
 
谢谢李,
如果没有你多年来在论坛上提供的大量帮助和例子,这个想法就不会这么快实现!
实际上,我几乎所有的lisp工作都是您帮助的结果,这是因为每次我询问/谈论某事时,您都会不断做出贡献。
所以,当我发布一些这样的例行公事时,我真的试着通过敬礼你的名字来抵制,不去打扰别人。
 
 
 
我想你不知道世界上有多少人欠你时间。。所以我只是希望这些想法(常规)能帮助你。
对你来说,除了一个想法之外,别无选择(因为似乎唯一的限制必须是你的想象力)。
 
 
 
我一直把你们想象成黑客!
 
 
 
 
谢谢你,罗恩!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 09:26 , Processed in 0.427573 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表