欢迎来到天天文库
浏览记录
ID:43949560
大小:494.25 KB
页数:14页
时间:2019-10-17
《能力拓展论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、目录1•引言22.概述22.1课程设计题目22.2课程设计口的22.3课程设计思想32.4课程设计支撑环境33.概要设计33.1相关矢U识33.1.1Karel基础指令33.1.2Karel口J判断的环境条件43.1.3Karel寻宝算法43.2主程序流程图54•详细设计54.1设计藏宝图54.2寻宝算法64.2.1寻宝流程图64.2.2寻宝算法实现75.运行结果86•小结与体会107.参考文献118•源代码111•引言卡雷尔是一个生活在非常简单的世界中的非常简单的机器人。在它的世界屮,你可以通过给卡雷尔一组命令
2、,直接让卡雷尔执行某些任务。卡雷尔的世界被定义为水平的街(东西方向),垂直的道(南北方向),街和道的交点被称为街角。卡雷尔只能定位在街角,而且只能面对四个标准罗盘方向(北,南,东,西)。一个简单的卡雷尔世界显示如下,卡雷尔目前位于第一大街和第一大道相交的街角,面朝东边。在上图中,我们还可以看到卡雷尔世界中其他的几件东西。卡雷尔前面的物体是个蜂鸣器,只冇当卡雷尔和蜂鸣器位丁•同一个街角上的时候,卡雷尔才能感知这个蜂鸣器。图中的实线是墙壁,墙是卡雷尔世界的屏障,卡雷尔不能穿过墙壁,而只能在墙的周边行走。卡雷尔的世界总
3、是被作为边界的墙包围起来,但是,随着卡雷尔需要解决不同的具体问题,卡雷尔的世界也有不同的尺寸。2•概述2.1课程设计题目Karel机器人程序设计2.2课程设计目的在卡雷尔简单的世界中,我们可以通过给卡雷尔一组命令,直接让卡雷尔执行某些任务。指定这些命令的过程称为编程。最初,卡雷尔只明白极少数预定义的命令,但编程(学习)过程的一个重要内容,就是教卡雷尔可以扩展它的能力的新命令。当我们谋划让卡雷尔执行某项任务的时候,我们必须用非常精确的方式写出这些必需的命令,以便这个机器人能够正确的理解我们交待它做的事情。另外,我们
4、写的程序必需遵守语法规则,它规定了什么样的命令和语言形式是合法的。预定义的命令和语法规则合在一起定义了卡雷尔编程语言。在复杂的语言里,如Java,细节往往成为学习课程的重点。当这种情况发生时,对解决问题更关键的东西,往往会在我们忽略。从卡雷尔入手学习编程,可以让我们在一开始的时候,就把精力集中在解决问题上面。而且,卡雷尔的学习鼓励想象力和创造力,在学习过程中,我们会收获不少乐趣。2.3课程设计思想在地图的某个位置上放置一个蜂鸣器,也就是Karel的宝藏。Karel从Karel'sHome(第一大街和第一大道相交的
5、街角)出发,四处寻找宝藏。找到宝藏后跳出显示“我找到宝藏啦!0(门_门)0~下面我要把宝藏带回家。”的对话框,然后Karel捡起宝藏,回到家,放下宝藏。2.4课程设计支撑环境硕件环境:pc微机软件环境:JDK1.6.0_31Eclipse3•概要设计3.1相关知识3.1.1Karel基础指令Karel基础指令有四个:1)move()要求卡雷尔向前推进一步。当一堵墙挡在卡雷尔面前的时候,卡雷尔不能响应move()这个命令;2)turnLeft()要求卡雷尔向左转90度(逆时针转动);3)pickBeeper()要求
6、卡雷尔捡起街角上的蜂鸣器,把这个蜂鸣器放到它的蜂鸣器收藏包里,这个包可容纳无限多的蜂鸣器。除菲这个蜂鸣器恰好在卡雷尔所在的街角上,否则卡雷尔不能响应pickBeeper()命令;4)耍求卡雷尔从蜂鸣器收藏包里拿出一个蜂鸣器,放在卡雷尔所在的街角上。除非卡雷尔的蜂鸣器收藏包里有蜂鸣器,否则卡雷尔不明响应putBeeper()^令。3.1.2Karel可判断的环境条件测试条件相反的测试条件判断的内容frontIsClear()面前无墙返冋肯定值frontIsBlocked()面前被挡返冋肯定值面前是否有墙leftIs
7、Clear()左面无墙返回肯定值leftIsBlocked()左面被挡返回肯定值左面是否有墙rightIsClear()右面无墙返回肯定值rightIsBlocked()右面被挡返回肯定值右面是否有墙beepersPresent()所在位置有方块返回肯定值noBeepersPresent()所在位置无方块返回肯定值所在位置是否有方块beepersInBagO包里目前有方块返冋肯定值noBeepersInBagO包里目前无方块返冋肯定值包里是否有方块facingNorth()面朝北返回肯定值noFacingNort
8、h()没有面朝北返回肯定值是否面朝北facingEast()面朝东返回肯定值noFacingEast()没有面朝东返回肯定值是否面朝东facingSouth()而朝南返回肯定值noFacingSouth()没有面朝南返回肯定值是否面朝南facingWest()面朝西返冋肯定值noFacingWest()没有面朝西返冋肯定值是否而朝西3.1.3Karel寻宝算法对于寻宝,可
此文档下载收益归作者所有