LOGO语言是基础的学习语言,那怕是画简单的图形,如果能够连带学习“结构化”编程的思想,也算是一件好事。所以现在较为通行的七巧板拼图编程,是要求调用现成统一的模块来编写“主程序”。这样不仅老师指导容易,查找错误容易,编程中还灌输了“结构化”编程的思想。这里推荐一个通用模块化编程的方式,其通用的编程子程序模块共有4个子程序:
一个三角形子程序,在使用50、71、100这3个不同的参数时,就能够构造出七巧板中3种不同尺度的三角形;
一个正方形子程序,边长参数固定为50;
两个平行四边形子程序,分别对应正反两面的平行四边形。
编写七巧板程序变成一种十分理性的、程序化的、逻辑性很强的游戏过程。
TO MAO ;猫咪
CS
LT 135 SBX 50 ;①
RT 45 FD 71 RT 90 FD 71 RT 180 SJX 71 ;②
FD 71 RT 90 FD 71 RT 45 SJX 100 ;③
RT 45 FD 141.4 RT 135 SJX 100 ;④
RT 90 ZFX 50 ;⑤
RT 90 SJX 50 ;⑥
FD 100 RT 180 SJX 50 HT ;⑦
END
TO SJX :B ;三角形模块边长参数50、71、100
REPEAT 2[FD :B RT 90]
RT 45 FD :B*SQRT 2 RT 135
END
TO ZFX :B ;正方形模块边长参数50
REPEAT 4[FD :B RT 90]
END
TO SBX :B ;平行四边形模块边长参数50
REPEAT 2[RT 45 FD :B*SQRT 2 RT 135 FD :B]
END
TO SBXJ :B ;镜像平行四边形模块边长参数50
REPEAT 2[RT 45 FD :B RT 135 FD :B*SQRT 2]
END
这里有一个重要的观点需要阐明:画一个七巧板图形完全是一个随意的过程。你从哪一块开始画都可以。但是要预先筹划一下——尽量选择走弯路最少的途径一块块画下去。要做到“选择最佳路线”来画一个图形,要多动脑筋。
TO ZANA ;藏獒
CS
RT 180 SJX 50 ;①
FD 20 LT 180 SJX 100 ;②
FD 100 LT 90 ZFX 50 ;③
BK 71 SJX 71 ;④
BK 29 RT 135 SBX 50 ;⑤
RT 45 FD 71 LT 45 BK 80
LT 90 BK 100 SJX 100 ;⑥
LT 45 BK 50 SJX 50 HT ;⑦
END
TO SJX :B ;三角形模块边长参数50、71、100
REPEAT 2[FD :B RT 90]
RT 45 FD :B*SQRT 2 RT 135
END
TO ZFX :B ;正方形模块边长参数50
REPEAT 4[FD :B RT 90]
END
TO SBX :B ;平行四边形模块边长参数50
REPEAT 2[RT 45 FD :B*SQRT 2 RT 135 FD :B]
END
TO SBXJ :B ;镜像平行四边形模块边长参数50
REPEAT 2[RT 45 FD :B RT 135 FD :B*SQRT 2]
END
七巧板LOGO编程有着极为丰富的题目资源,几乎是可以随手拈来。已经知道如何切分拼图的题目相对容易。而有些仅有图形轮廓、并不知道切分拼接方式的题目,可能是天字一号的难题——它难不在编程,而在切分拼接方案!