编程题 共9道
逃不掉的小球
题目说明
准备工作:
添加1个“Ball”小球角色,绘制1个轮廓较粗的红色空心圆。
编程实现:
键盘控制小球运动,小球不能越过圆形边缘。
具体要求:
1). 圆形和小球都放置在舞台中间(如图);
2). 点击绿旗,使用上、下、左、右按键可以控制小球上下左右移动,但在程序未运行时,按下按键则应该不能控制小球移动;
3). 小球只能在其圆形范围内移动(允许触碰到边缘,但不能越过边缘);
4). 当按下空格键时,小球要回到舞台中间,圆形则必须在初始大小的基础上随机变大或者变小;
神奇画笔
程序1
利用画笔(不是造型编辑工具)绘制1个圆形,画笔的颜色、粗细自行定义,但最终画成的圆形需要完全在画布范围内。
提示:
画圆的方法:前进一点点,再旋转一点点,如此循环多次。
1). 点击绿旗,清空舞台;
2). 在舞台上逐步连贯地画出一个圆,圆的大小,画笔颜色、粗细不限制,圆形完全在画布范围内。
程序2
绘制一个颜色变化的圆形螺旋,画螺旋与画圆形的方法类似。
画圆形的方法:前进一点点,旋转一点点,如此循环多次。画螺旋的方法:前进的距离比上次多一点点,或者旋转的角度比上次小一点点,如此循环多次。
2). 在舞台上画出一个螺旋,螺旋的大小、旋转方向和画笔粗细不限制;
3). 螺旋的颜色逐渐化。
程序3
点击绿旗,询问边数,绘制出颜色渐变的螺旋多边形。例如,下图分别为输入“4”和“5”的绘制效果。
1). 点击绿旗,清空舞台,询问“请输入边数”;
2). 按照输入边数,连贯地绘制螺旋多边形;
3). 绘制的螺旋多边形是颜色渐变的。
河马捡球
添加1个“Hippo1”河马角色,1个“Ball”小球角色。
添加“Hay Field”背景。
河马把天上的球带回地面。
1). 点击绿旗,小球从舞台上消失,河马位于舞台下方;
2). 当按下空格键后,小球出现在背景的天空范围内的随机位置(见图1);
图1
3). 小球出现后,河马一边拍打着翅膀一边向小球飞过去,然后再拍打着翅膀把小球带回起点位置,带回过程中,小球要始终处于河马的嘴部并且处于河马图层的上方(见图2);
图2
4). 当河马把小球带回原处后,小球消失,河马停止拍打翅膀(见图3);
图3
5). 再次按下空格键,能重复功能2,3,4的过程,并且小球每次出现的位置都不同。
沙漠变绿洲
导入“Trees”角色,自行绘制1个水滴的角色,导入背景”desert“,在背景上绘制4个树坑。
游戏开始,按下并移动鼠标,水滴会从鼠标处呈抛物线落下,水滴落在小树上后,小树慢慢长大。
1). 点击绿旗,程序开始,舞台上只看到4个树坑,而小树以虚像的状态存在于树坑中。
2). 每次按下鼠标,多个水滴从鼠标处呈抛物线落下,水滴的运动轨迹是向右的抛物线,抛物线运动的实现方法见下面的程序图。
3). 如果水滴落到树坑(小树的虚像)上,小树开始出现,并且小树在碰到更多的水滴时慢慢长大,当长到角色大小为100(原始大小)时,就不再长大了。
4). 注意:在小树长大的过程中,小树的根部应始终在树坑里,不能上下移动。
加油问题
小猫打算在“五一”假期骑摩托车自驾游,摩托车每次加满油后可以行驶100公里,它在自家附近的加油站加满油后就上路了,上路之后还要顺序经过“1号”-“6号”的6个加油站,每个加油站到上一个加油站的距离分别是50、80、39、60、40、32公里。因为“五一”期间各加油站都有很多车要加油,所以小猫希望尽量减少加油的次数。请帮助小猫找出在哪些加油站停靠加油(每次都加满油)才能使得沿途加油次数最少。
注意:如果摩托车剩下的油不够行驶到下一个加油站时,就必须要在这个加油路加油了!
1). 创建两个列表,列表“距离”用于存放各个加油站距离的数值,将50、80、39、60、40、32依次添加到列表中;列表“停靠”有6个元素,用于标记在哪个加油站停靠加油。每次点击绿旗时,都要将“停靠”列表中的6个元素初始化为“0”,然后让小猫说“开始出发”2秒。如图1所示:
2). 小猫需要指出应该在哪个加油站停靠加油。例如,小猫需要在第1个加油站加油(因为到第2个加油站还有80公里,而摩托车的油只够再骑50公里了),就让小猫说“在1号加油站停靠加油”2秒,同时将“停靠”列表中的第1个元素值修改为1,然后继续说出下一个需要加油的加油站(见图2),当到达目的地时,让小猫说“到达目的地”2秒,然后程序结束。
赛后判卷时,在裁判修改了列表“距离”中的数值以后,重新点击绿旗后,能够以新的数值重新计算,并让小猫说出合理的停靠加油方案,使得加油的次数最少。
捉迷藏之一
小猫随机躲在6个按固定位置排列的前景角色任一个的后面,只露出一点点痕迹。
1). 添加任意1个背景,保留小猫角色,从角色库中挑选6个角色作为前景角色(小猫将躲在它们的后面)。
2). 6个前景角色按照两行三列的方式以固定位置排列在舞台上(见图1)。
3). 点击绿旗游戏开始,6个前景角色都消失,小猫在舞台左下角;等待1秒后,6个前景角色同时出现,此时小猫说“我要开始藏了!”2秒钟;然后随机藏在某一个前景角色后面。
4). 小猫不论藏在哪个前景角色后面,都只露出一点点痕迹。
捉迷藏之二
编程实现(以程序1为基础改进):
点击绿旗,开始游戏时显示随机背景。点击前景角色,可以找到小猫。
1). 每次点击绿旗,都显示一个随机的背景,小猫位于屏幕左下角,6个角色均不显示。等待1秒钟后,6个角色以固定位置,按照两行三列的方式出现在舞台上,此时小猫说“我要开始藏了!”2秒钟,然后藏在随机某个前景角色后面。
2). 玩家点击某个前景角色,如果小猫就是藏在这个前景角色后面,则小猫现身,说“哇,你找到我啦!”。
3). 如果小猫不是藏在这个前景角色后面,则小猫在它所藏的角色前面现身,提示“Hi.我在这儿呐!”。
捉迷藏之三
编程实现(以程序2为基础改进):
增加一个捉迷藏的小动物(以下以小老鼠“Mouse1”为例)。
游戏开始时6个前景角色以两行三列排列方式随机出现,两个小动物随机藏到6个前景角色后面,但每个前景角色后面只能藏一只小动物。
在两次点击都正确找到小动物藏身的前景角色的情况下,才算游戏过关,否则游戏失败。
1). 点击绿旗后,游戏开始,小猫在屏幕左下角,小老鼠在右下角,显示随机背景,6个前景角色都消失。等待1秒钟后,6个前景角色同时出现,按照两行三列的方式排列在舞台上,但每次6个前景角色的排列顺序随机变。注意:这6个前景角色不要挡住两个小动物。
2). 等到6个前景角色显示出来后,小猫和小老鼠都说“我要开始藏了,来找我哦!”2秒钟,然后分别随机藏在某个前景角色后,只露出一点点痕迹。
注意:每个前景角色后只能藏一只小动物;对于新增加的小老鼠角色,不论它藏在哪一个前景角色后面,都同样要露出且只能露出一点点痕迹。
3). 当玩家点击某个前景角色时,如果有小动物藏在这个前景角色后,则这个小动物现身并说“哇,你找到我啦!”1秒钟。
当玩家点击某个前景角色时,如果没有小动物藏在这个前景角色后,则还没被找到的小动物现身(一个或者两个小动物)并说“Hi,我在这儿呐!”2秒钟,然后小猫说“游戏失败!”游戏失败,程序结束。
如果两只小动物先后被正确找到,则两个小动物在说完“哇,你找到我啦!”之后。还要同时说“你真棒!”2秒钟,游戏过关,程序结束。
捉迷藏之四
编程实现(以程序3为基础改进):
实现有时间限制和得分机制的多局游戏。每局游戏都是在时间限制内按照程序3的规则要求过关才能得分和进行下一局游戏,并且下一局游戏的时间限制会缩短,否则游戏结束且程序结束。
1). 每一局游戏均以程序3中规定的规则为基础,增加限制时间机制,即如果玩家在限制时间内正确找到两个小动物才算本局游戏过关;否则,在限制时间到时,所有小动物都现身,并由小猫说“你不够快啊,我们在这里!”2秒钟,本局游戏失败,程序结束。
增加变量“时间”来记录本局游戏的时间,并在程序运行过程中始终显示在舞台右上角(见图1)。
每局游戏的时间限制递减;第1局游戏的限制时间为10秒钟,第2局7秒钟,从第3局开始限制时间均为5秒钟。
每局游戏开始时,“时间”变量应显示本局游戏的时间限制,“小动物藏到前景角色后”这一动作发生时开始倒计时:倒计时应在小猫提示游戏过关或失败的同时停止。
2). 增加变量“得分”来记录游戏当前的得分,并在程序运行过程中始终显示在舞台左上角(见图2)。
点击绿旗后,将“得分”赋值为0,然后开始第一局游戏。如果本局游戏过关,则“得分”加1,并在等待2秒钟之后开始下一局比赛;如果本局游戏失败,则程序结束。