加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

复赛上机题:鼠标控制画圆点2

(2022-07-01 14:44:33)
分类: WinXP~7~8~10运行Logo语言
复赛上机题:鼠标控制画圆点
复赛上机题:鼠标控制画圆点2
      这个题目我们先来用PCLogo求解。
      这里面包含如下几个编程要点:外框画图居中;编写形成鼠标控制的无限循环;产生一个随机色的圆点。

TO SBYD  ;鼠标控制画圆点主程序PCLogo解
  DRAW HT                    ;初始化
  SETW 3 SETPC 9             ;外框笔宽3颜色蓝
  PU SETXY LIST -200 -200 PD ;定位居中到左下方
  REPEAT 4 [FD 400 RT 90]    ;画外框
  PU SETW 40                 ;源点直径40
  LABEL "L                                   ;鼠标循环返回点
   IF BUTTON? 1 [MAKE "A MOUSE YUAN WAIT 20] ;点击左键画点
   IF BUTTON? 2 [GO "OUTA]                   ;点击邮件退出
   IF NOT BUTTON? 2 GO "L                    ;形成无限循环
  LABEL "OUTA
END

TO YUAN            ;画一个圆点
  MAKE "X FIRST :A ;读出:X值
  MAKE "Y LAST :A  ;读出:Y值
  (PR :X :Y)       ;输出鼠标点击的:X:Y位置
  MAKE "S RANDOM 14 ;产生笔色
  SETPC :S
  IF AND (AND :X < 180 :X > -180) (AND :Y > -180 :Y < 180) [DOT SE :X :Y]
END

复赛上机题:鼠标控制画圆点2

      程序中比较关键的部分是分析鼠标点击在400×400的框内部的算法。由于框是居中的,所以点击位置上下左右都必须在 -180~+180 之间。这里边预留出20的间距是因为圆点的直径是40,半径就是20。写成表达式是:

    AND (AND :X < 180 :X > -180) (AND :Y > -180 :Y < 180)

      凡是符合条件的才是点击在框的中间,否则就是“压”框,或是在框的外面。点击正确的才画点。否则不画点。

A. 题目:
    http://blog.sina.com.cn/s/blog_5fd454d00102z34y.html
B. PCLogo解

C. FMSLogo解

D. MSWLogo解


FMSLogo-FMSLogo解待续……

更多的复赛题解应参考《复赛详解》
资料来源参见下面的图
复赛上机题:鼠标控制画圆点2

复赛上机题:鼠标控制画圆点2

复赛上机题:鼠标控制画圆点2

复赛上机题:鼠标控制画圆点2

                    

0

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

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

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

新浪公司 版权所有