明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 371|回复: 5

[源码] 发牌小游戏

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
;发牌排序游戏 假定有13张片A~K,发牌规则是将这一叠牌最上面的一张移到最下面,发出一张牌
;再将最上面一张移到最下面,再出一张牌,依此类推,直到所有的牌全部发完,要求牌按A~K的顺序发出
;请设计程序将牌排序
  1. (defun c:tt()
  2.   (setq list1 '(A 2 3 4 5 6 7 8 9 10 J Q K))
  3.   (setq list1 (reverse list1))
  4.   (setq list2 '())
  5.   (while list1
  6.     (setq list2 (cons (car list1) list2))
  7.     (setq list2 (cons (car (reverse list2)) (reverse (cdr (reverse list2)))))
  8.     (setq list1 (cdr list1))
  9.   )
  10.   (prin1 list2)
  11.   (princ)
  12. )


执行结果:
(7 A Q 2 8 3 J 4 9 5 K 6 10)
我们依此类推,完整的一副牌该如何排序?如果往下移两张牌后出一张牌,又该如何排序?
可以给家里的小孩子玩这个游戏。

点评

这类排序最重要的是思维逻辑,将发牌倒放就能还原牌的顺序。这一思路可以用在其他地方  发表于 3 天前

评分

参与人数 1明经币 +1 金钱 +20 收起 理由
mccad + 1 + 20 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
动态显示一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

由于上传大小限制在6MB以下,第一张牌7移至后面没截取到  发表于 5 天前
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 07:54 | 显示全部楼层
凭着一股热情学习了几个月的lisp,但尴尬地发现在现实工作中几乎用不到这些。因此,不得不调整学习思路。
一方面,让需求来推动自己学习。另一方面,将lisp用到兴趣爱好或游戏中。比如这个:
  1. (defun c:tt (/ v1 v2 v3 p1 p2 p3 i n)
  2.   (setq v1 (getvar "osmode"))
  3.   (setq v2 (getvar "cmdecho"))
  4.   (setq v3 (getvar "blipmode"))
  5.   (setq p1 '(0 0))
  6.   (setvar "osmode" 0)
  7.   (setvar "cmdecho" 0)
  8.   (setvar "blipmode" 0)
  9.   (setq  list1 (list "潮随暗浪雪山倾"
  10.         "远浦渔舟钓月明"
  11.         "桥对寺门松径小"
  12.         "槛当泉眼石波清"
  13.         "迢迢绿树江天晓"
  14.         "霭霭红霞海日睛"
  15.         "遥望四边云接水"
  16.         "碧峰千点数鸿轻"
  17.        )
  18.   )
  19.   (command "zoom"
  20.      (list -10 -10)
  21.      (list 210 85)
  22.   )
  23.   (command "style" "hwfs" "华文仿宋" "0" "1.0" "0" "N" "N")
  24.   (setq  i 0
  25.   n 0
  26.   )
  27.   (while (< i 8)
  28.     (while (< n 7)
  29.       (setq p2 (list (+ (* i 10) 7) (+ 5 (* n 10)))) ;倒序阅读
  30.       (setq p3 (list (+ 75 (- 100 (* i 10))) (+ (- 0 (* n 10)) 65))) ;正序阅读
  31.       (command "text" "m" p2 3.5 0
  32.          (substr (nth i list1) (+ 1 (* 2 n)) 2)
  33.       )
  34.       (command "text" "m" p3 3.5 0
  35.          (substr (nth i list1) (+ 1 (* 2 n)) 2)
  36.       )
  37.       (setq n (1+ n))
  38.     )
  39.     (setq n 0)
  40.     (setq i (1+ i))
  41.   )
  42.   (setvar "osmode" v1)
  43.   (setvar "cmdecho" v2)
  44.   (setvar "blipmode" v3)
  45.   (princ)
  46. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-4-9 08:52 , Processed in 0.157248 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表