复赛上机题:鼠标控制画圆点 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

程序中比较关键的部分是分析鼠标点击在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解待续……
更多的复赛题解应参考《复赛详解》
资料来源参见下面的图
加载中,请稍候......