用Alice学编程第4节课.ppt

上传人:本田雅阁 文档编号:2180851 上传时间:2019-02-26 格式:PPT 页数:27 大小:881.51KB
返回 下载 相关 举报
用Alice学编程第4节课.ppt_第1页
第1页 / 共27页
用Alice学编程第4节课.ppt_第2页
第2页 / 共27页
用Alice学编程第4节课.ppt_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《用Alice学编程第4节课.ppt》由会员分享,可在线阅读,更多相关《用Alice学编程第4节课.ppt(27页珍藏版)》请在三一文库上搜索。

1、第4讲: 程序中的控制语句、Alice内建的函数和表达式,组成程序的代码,一个程序由各种类型的代码片段组成,如前面所学的顺序执行和同步执行语句,简单的指令(如向前移动1米)等等。 设计一个程序就是学习如何组织这些代码 组成一个程序的代码片段有4种 一般指令 控制语句 函数 表达式,一般指令,在Alice中,一般指令就是一个物体的方法(method). 如: snowman turn to face snowwoman spiderRobot move up 0.5 meters,控制语句,控制语句的作用是告诉计算机一般指令应该如何被执行,如顺序执行和同步执行。 如: Do in order D

2、o together,函数,一个函数用来计算得到一个结果(或者一个数值) 在Alice中, 我们用函数来询问想得到的问题答案 如:询问物体的属性信息 雪人的脸是红色的吗? 如:询问两个物体之间的关系 机器人距离岩石的距离有几米? 如:询问一个状态值 键盘上哪个键被按下了?,函数举例,在上一讲的例子中,我们用眼睛观察并不能知道机器人距离岩石的详细距离,Alice中内建的函数,内建函数的类型 关于和一个物体接近度的函数 关于物体尺寸的函数 关于物体之间空间关系的函数 关于物体位置方位的函数 其它函数,This example illustrates some built-in proximity

3、functions.,函数的返回值,使用函数是为了得到一个问题的答案,这个答案我们称之为函数的返回值。 返回值的类型和函数有关: 如问题是:机器人距离岩石有多远?该问题的答案是一个数值; 如问题是:机器人的名字是什么?该问题的答案则是一个字符串。,示例,FirstEncounterDistanceFunction 该例子中演示的概念: Alice中内建的 distance to 函数的作用是:得到两个物体之间的距离,这个距离是以连接两个中心点的线段长度来衡量的。 函数不是一个独立的指令,它总是嵌套在指令中来使用的。,其它例子:mummyDistanceFunction,值的类型,除了数值可以作

4、为函数的返回值外,还有以下值的类型: Boolean true, false String “Oh, Yeah!“ Object snowman, helicopter Position in the world (10, 5, 2) 物体在3D场景中的位置,碰撞问题,在刚才的例子中,机器人会和岩石碰撞. 原因:移动的距离太大(因为这个距离是以两者的中心连线来衡量的). 一个解决的办法是将这个距离适当缩短,即再减去一个数值。,表达式,表达式是一个数学或者逻辑操作的短语,如x+5-7,ab 等 Alice 提供了基本的加减乘除数学操作 : addition : + subtraction : m

5、ultiplication: * division: /,示例,FirstEncounterExpression_V1 该例子中说明的概念: 数学表达式也是嵌套在指令中的。 Alice目前提供的数学表达式有 +, -, *, /,其它例子: mummyExpression_V1,示例,FirstEncounterExpression_V2 上一步中减去2米是一个我们任意给的数值。 更精确的做法是减去岩石宽度的一半。 该步骤的结果是一个比较复杂的表达式:两个函数的返回值之差。,其它例子: mummyExpression_V2,控制语句,除了 Do in order 和 Do together 控

6、制语句之外,还有以下两种控制语句: 条件执行语句(conditional execution) 循环语句(repetition),条件执行语句,当某个条件满足时,执行一个代码块,否则执行另外一个代码块。 如:当木乃伊比法老高 时,木乃伊向左转一圈, 否则法老向左转一圈。,If/Else 语句,在 Alice中用 If/Else 控制语句来检查一个条件是否满足。,示例,mummyIfElse 该例子说明的概念: 条件是由一个布尔( Boolean )函数完成的,布尔函数返回一个布尔值( true 或者false )。 Do nothing意思是什么都不做,继续执行下一条语句。,关系操作表达式,一

7、个物体内建的布尔函数很有限,如没有一个函数用来表达木乃伊的身高是否大于2米。这可以用world节点中的关系操作表达式来实现。如下图所示:,示例,mummyRelationalOps 该例子中说明的概念: 关系操作表达式用world中的函数来实现. 关系操作表达式中的“a” 和 “b” 符号会被函数或者其它的数值代替,循环语句,现实中我们经常需要反复执行多次同一个动作,在计算机中称之为循环。 先看一个木乃伊行走一步的例子 mummySimpleSteps,行走一步的故事板(storyboard),Do in order Do together /move body and left leg mu

8、mmy move forward 0.25 meters Do in order mummys left leg turn backward mummys left leg turn forward Do together /move body and right leg mummy move forward 0.25 meters Do in order mummys right leg turn backward mummys right leg turn forward,用循环语句实现行走5步,mummyLoop,作业4-1,在上次所讲的例子机器人和外星人初次见面(ch2e2firstE

9、ncounterExtended.a2w)基础之上修改如下:让spiderRobot走到岩石那边后,让它转向lunarLander,再行走到它与登月机的中间。 参考视频文件: exercise-4-1.swf,作业4-2,创建一个包含一只狗(Animal中的wolf)和一个消防栓(City)的虚拟世界,如下面场景所显示的。(我们用狼来代表狗。)编写一条指令,用distance to函数结合数学表达式来把狗移动到消防栓的旁边。注意,避免狗和消防栓发生碰撞。 参考视频文件:exercise-4-2.swf,作业4-3,创建如下图所示的场景,包含一个飞艇(Vehicle)和一只飞龙(Medieval)。在这个奇幻的场景中,飞龙发现了飞艇并十分好奇。它在飞艇的周围盘旋想探个究竟。编写代码让飞龙向飞艇移动,并绕它(纵向地)旋转三周。参考视频文件exercise-4-3.swf,思考,创建一个包含一个木箱(Object)和一只袋鼠(Animal)的虚拟世界。编写程序使袋鼠跳到木箱上面,让袋鼠的腿前后旋转,让跳跃更加真实。在向前向上运动的函数中使用height函数来定位。 参考视频:exercise-4-4.swf,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1