karel能力拓展训练

karel能力拓展训练

ID:22583281

大小:828.35 KB

页数:22页

时间:2018-10-30

karel能力拓展训练_第1页
karel能力拓展训练_第2页
karel能力拓展训练_第3页
karel能力拓展训练_第4页
karel能力拓展训练_第5页
资源描述:

《karel能力拓展训练》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、引言卡雷尔是一个牛.活在非常简单的世界中的非常简单的机器人。在它的世界中,你可以通过给卡雷尔-•组命令,直接让卡雷尔执行某些任务。卡雷尔的世界被定义为水〒的街(东西方向),垂直的道(南北方向),街和道的交点被称为街角。卡雷尔只能定位在街角,而JJ.只能面对卩L

2、个标准罗盘方向(北,南,东,西)。一个简单的卡茁尔世界显示如下,卡茁尔H前位于第一人街和第一人道相交的街角,而朝东边。在上图屮,我们还可以看到卡雷尔世界中其他的几件尔丙。卡雷尔前面的物体是个蜂鸣器,只有当卡雷尔和蜂鸣器位于M—个街角上的吋候,卡雷尔冰能感知这个蜂鸣器。图中的实线足

3、墙襖,墙足卡雷尔世界的屏障,卡雷尔不能穿过墙娥,而以能在墙的周边行走。卡雷尔的世界总足被作为边界的墙包围起来,似足,随着卡雷尔需要解决不同的具体问题,卡雷尔的世界也有不的尺寸。2•概述2.1背景介绍2.1.1Karel介绍在二十世纪七十年代,一位名字叫RichPattis的斯坦福研究生觉得,在编程基础的教学中,如果学生町以在某种简单的环境中,摆脱大多数编程语言杂的特性,学习木的编程思想,可以取得更好的效果。麻省理工SeymourPaperfsLOGO计划的成功,启发了灵感,Rich设计了一个入门编程环境,(这个编程环境)让学生教一个机器

4、人来解决简单的问题。这个机器人名字叫卡雷尔。因为捷兑剧作家KarelCapek在1923年公演了R.U.R(Rossum’sUniversalRobots)后,为萊语带来广机器人这个英语单同Robot。机器人卡雷尔相当成功。卡雷尔被用于全国的计算机科学入门课程,到丫Rich的教科15畅销超过10万份的地步。许多学习CS106A的学生,通过没计卡雷尔的行为,学会了如何让程序工作在20世纪90年代中期,我们曾经使川的机器人卡雷尔校拟器停止工作了。似是,我们很快就得到了一个Thetis编译的卡雷尔升级版供那时使川。似是,一年以前,CS106A

5、课稅转向到Java,卡雷尔再次从课堂上消失了。虽然在过去的三个季度,巾于卡雷尔的离去产生的空白,已经完全被NickPariante的Binkyworld填但现在是带卡雷尔回來的时候了。新完工的卡雷氺设计得完全兼容Java和Eclipse编程环境,这就意味着,你将在这门课程的开始,就可以练习使用Eclipse的编辑器和调试器。卡雷尔是一个生活在非常简单的世界中的非常简单的机器人。在它的世界中,你可以通过给卡雷尔一组命令,直接让卡雷尔执行某些任务。指定这些命令的过程称为编程。《初,卡雷尔只明內极少数预定义的命令,但编程(学习)过程的一个重要

6、内容,就是教卡雷尔可以扩展它的能力的新命令。当你谋划让卡雷尔执行某项任务的时候,你必耑川非常精确的方式写出这些必需的命令,以便这个机器人能够正确的理解你交待它做的事情。(另外)特别(注意的)足,你写的柷序必须遵守语法规则,仑规定了什么样的命令和语言形式是合法的。二者合在一起,预定义的命令和语法规则(一起)定义了卡雷尔编程语言。卡雷尔编程语言被设计的尽可能类似于Java语言,这样便于顺利过渡到(Java)这门你将时刻使用的语言上。卡雷尔程序具冇和Java程序相同的结构,也涉及到相同的®木元素。敁关键的区别是,卡雷尔的编程语言非常的小,从这

7、个意义fc讲,只具冇非常少的命令和规则。它非常容芴,例如,教授卡雷尔语言只需要几个小时,这也正是我们在CS106A中做的。在(课程)结束的时候,你将知道卡雷尔能做的一切事情,以及如何在一个程序中实现它。这些细节是容易掌握的。即便此,你会发现,(耑要)解决的闷题可能是极其具挑战性的。解决问题是编程的木质;在这一学习过程中,对规则的关注是次要的。在S杂的语言里,如Java,有许多的细节,这些细节往往成为学习的课程的重点。当这种情况发屯吋,对解决问题的更关键的东西,往往会在得到一片混乱中失去。通过从卡雷尔入手开始学习,你可以在一开始的吋候,就

8、把精力集中在解决问题上面。2.1.2Karel语言当卡雷V出厂的时候,它只能响应非常小的命令集:moveO要求卡雷尔向前推进一步。当一堵墙挡在卡雷尔而前的时候,卡雷尔不能响应move()这个命令。turnLeft()要求卡雷尔向左转90度(逆时针转动)。pickBeeperO要求卡雷尔捡起街角上的蜂鸣器,把这个蜂鸣器放到它的蜂鸣器收藏包里,这个包可容纳无限多的蜂鸣器。除非这个蜂鸣器恰好在卡雷尔所在的街角上,卡雷尔不能响应这个pickBeeperO命令。putBeeper()要求卡雷^〈从蜂鸣器收藏包里拿出一个蜂鸣器,放在卡w尔所在的街角

9、上。除非卡雷尔的蜂鸣器收藏包麗冇蜂鸣器,卡雷尔不能响应这个putBeeper()命令。出现在这些命令dflf的一对空括兮,是卡雷尔和Java相同语法的一部分,通过这个(一对空折号),來指定命令的调川。最终的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。