加载中…
个人资料
林老师的LOGO_PYTHON_C语言之家
林老师的LOGO_P
YTHON_C语言之家
  • 博客等级:
  • 博客积分:0
  • 博客访问:48,399
  • 关注人气:563
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

玩转扑克牌游戏D

(2022-07-29 09:43:28)
标签:

林老师

pclogo

mswlogo

logo博客

fmslogo

分类: WinXP~7~8~10运行Logo语言
玩转扑克牌游戏 D
玩转扑克牌游戏D
       芜湖试卷的玩牌编程“一扎纸牌N张,从上到下编号为1~N,现将第一张丢掉,第二张放在纸牌的最后,现将第三张丢掉,将第四张放在最后,如此下去,直到手中只剩下一张牌,编程求这张牌原来是几号。”还可以有更巧妙的玩法,就是将输出结果显示在作图窗口中,而且要居中显示输出。这样的编程其实不难。每道题目如果都是这样琢磨得透透的,考试竞赛中恐怕就再也没有难题。改进后的源程序是这样的:
TO C :N
  SETLABELFONT [[黑体] 14 7]  ;设置写屏字体为黑体14×14五号字
  CS HT PU SETXY -18*:N/2 :N*18 SETH 90   ;使输出居中
  MAKE "L []  ;建立一个储存顺序牌号的空表
  FOR[I 1 :N][MAKE "L SE :L :I]  ;将顺序数字赋值给空表
  MAKE "FL "原始牌序 XS 
  C1 :L  ;用递归模拟玩牌过程
END

TO C1 :L   ;模拟玩牌的递归
  IF (COUNT :L)=1 [MAKE "FL "最后一张 XS STOP] ;在只剩下一张牌时输出表中的牌号
  MAKE "L BF :L             ;将第一张牌丢掉
  IF (COUNT :L)>1[MAKE "FL "丢掉首张 XS]
  MAKE "L SE BF :L FIRST :L ;将当前面上的牌放到最后并组成新表
  IF (COUNT :L)>1[MAKE "FL "换位置后 XS]
  C1 :L  ;不断循环以上过程
END

TO XS  ;输出在作图窗口的子程序
  MAKE "LL SE :FL :L  ;将文字与扑克牌数据组成表
  PD LABEL :LL        ;输出当前扑克牌的表数据
  PU SETX -18*:N/2 SETY YCOR-18   ;移位到下一行位置
END

      除了题头图的例子外,还有下面两个运行实例。很明显,你不要输入什么C 500、 C 3000这样的命令。优先的作图屏幕能够容得下那么多的图形吗?

玩转扑克牌游戏D

玩转扑克牌游戏D


玩转扑克牌游戏D

LOGO编程画出来的动画
玩转扑克牌游戏D

玩转扑克牌游戏D

玩转扑克牌游戏D










                          

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有