怎样进行“路面覆盖”?
路面上有一些坑洼,暂时用一些现成的木板来覆盖——这是再正常不过想
法了。像“写生”绘画那样,用计算机LOGO语言编程来模拟这个过程,就成了厦门市教育局-科协官方举办的2024复赛上机题的命题。编制好的LOGO动画已经展示在上面了,挺形象生动的。浏览一下这次竞赛的四道题,这么一个“路面覆盖”似乎并没有作为压轴题,第四道“太空快递”才是命题老师心目中的大而难题目。编程画这个“路面覆盖”,根据题目的要求,可以有“顺应”型编程和“智慧”型编程两种编程方法。如果使用“顺应”型编程,这道题是最多只有两颗星星难度的初级简单题;如果使用“智慧”型编程,这可就成为四颗星星~五颗星星的难题了(其实质难度超过了分值最高的“太空快递”)。
看看下面的题目要求,如果是你用最简单的方法应该怎样编写出程序?那么还有怎样的思路可以让这个程序具备较为聪明的“智慧”:可以在输入任意的坑洼数据的前提下通畅地进行“路面覆盖”?可以在林老师的博客的后面发表你们编写的程序。林老师关于这个问题的“顺应”型编程和“智慧”型编程的源程序将在后续的博客中发表。试卷的题目如下:
三、路面覆盖(lmfg)
(25分)
校门外的路面上发现了5个坑洼(位置由输入表决定)。为了同学上学安全,你找到一些木板(规格都一样)铺设路面覆盖坑洼地。由于搬运木板需要劳力,在完成覆盖所有坑洼的前提下,搬运的木板越少越好。请你编程序,演示覆盖路面的全过程。
说明与要求:
1.
路面由600×50的长方形表示,内涂灰色(色号15)表示是水泥地。5个坑洼由(20×10)的凹形表示,假设坑洼都落在一条直线上,位置均从路面左侧开始算至凹形左侧的距离(如图示)。整个路面在屏幕中间完整显示。
2.
木板的规格都由80×5的长方形表示(色号9)。覆盖时,木板的两端与坑洼凹形边对齐也算是覆盖,凹形坑口不能暴露,木板不能切割也不允许交叉叠放。
3.
程序先画出水泥路面和5个坑洼,随后依次演示木板的覆盖过程,每覆盖一块木板,暂停一下(wait
50),直至完成覆盖任务。
4. 例如,执行命令 lmfg [100 130 200 370
430],显示如下面图3所示。
加载中,请稍候......