当前位置: 首页 > news >正文 网站推广策划思路与执行设计师新手接单网站 news 2025/11/2 23:28:03 网站推广策划思路与执行,设计师新手接单网站,企业网站建设制作公司,官方商城入口斯坦福JSKarel编程机器人使用介绍 为了避免被编程语言固有的复杂性所困扰#xff0c;有一个被称为卡雷尔#xff08;Karel#xff09;机器人的微型世界#xff08;microworld#xff09;的简化环境#xff0c;可以让编程初学者从中学习理解编程的基本概念#xff0c;而…斯坦福JSKarel编程机器人使用介绍 为了避免被编程语言固有的复杂性所困扰有一个被称为卡雷尔Karel机器人的微型世界microworld的简化环境可以让编程初学者从中学习理解编程的基本概念而不必掌握大量无关的细节让编程初学者更容易理解编程的要点和思维方式。 斯坦福Karel是一门面向初学者的教学编程语言。先看一个在 Karel世界里的走迷宫效果 一、Karel简介 Karel 是一个非常简单的编程机器人最早由是斯坦福大学的研究生理查德·帕蒂Richard Pattis研制推出帕蒂以捷克剧作家卡雷尔·恰佩克KarelČapek的名字命名他的机器人为 Karel。可以通过一组指令指挥 Karel 在它的世界里执行某些任务。Karel 的编程语言的规则与其他更复杂的语言类似。不同之处在于 Karel 的编程语言非常小复杂度较低你可以通过它学习编程解决问题的本质。 JSKarel的安装要点 本文介绍的时Windows PC上如何下载和运行JSKarel。JSKarel依赖Java因此需要在计算机上安装JDK。 若想省事可以到 https://download.csdn.net/download/cnds123/88440832 下载使用。 或 进入cs106j网站http://cs106j.stanford.edu 点击Software软件链接。 您将看到JDK的两个链接(针对32位版本或64位版本)。您应该单击适合您的Windows版本的版本。 因为我的PC安装的是64位的Windows10操作系统因此选用64-bit版本JDK执行典型安装并按照给出的其余说明完成安装。 再下载JSKarel for Windows。这个不需要安装双击打开。 JSKarel解释器窗口 双击JSKarelJSKarel.jar就启动了JSKarel解释器interpreter窗口分为四个部分参见下图 标题栏下是菜单栏。 左上角你可以看到卡雷尔的“世界查看器”区域它可以让你看到Karel卡雷尔运行情况。进入编辑世界Edit World”状态时你也可以在此区域用来创建一个Karel世界或编辑已存在的Karel世界。保存的文件扩展名为.w。 左下侧 是Console window控制台窗口允许您输入函数调用并观察它们如何影响Karel卡雷尔的世界。这是一个交互式窗口在提示符后输入指令回车JSKarel解释器立即执行。 右侧是“程序编辑器”窗口在这里您可以输入新程序并编辑现有程序。保存的程序文件扩展名为.k。世界文件的名称以.w为扩展名与程序文件以.k为扩展名的名称相匹配。【如果文件不显示文件扩展名后缀请在操作系统中进行设置具体方法可上网检索“怎么显示文件扩展名”】 底部包含控制条其中包含一组图标——可称为控制按钮允许您控制解释器的操作。 菜单栏中的一些命令项和控制条上的一些控制按钮功能重复。 二、JSKarel的使用 Karel 的世界 Karel 的世界由从西向东的大街street和从南向北的大道avenue 所定义。大街和大道的交叉点叫作街角corner 。Karel 只能被放置在一个街角必须面对四个标准的罗盘方向之一北、东、南、西。在下面的示例世界中Karel 在第1 大街和第1 大道的街角处并且面向东方。 例子中可以看到Karel 的世界的其他几个组成部分。Karel 前面那个灰色的 菱形物体是一个蜂鸣器beeper 。当Karel 和蜂鸣器在同一个街角时才能听到这些声音。例如图中此时Karel 并未意识到蜂鸣器的存在只有当Karel 移动到下一个街角时才会发现它。图中的实线是墙壁wall 。Karel 的世界总是由边缘的墙壁包裹着并且也可能包含内墙。 创建和编辑世界 你需要知道的另一件事——特别是如果你计划参加卡雷尔竞赛的话——是如何创建新的世界和编辑现有的世界。 使用“编辑世界”Edit World按钮会弹出编辑调色板palette其中包含一堆图标允许您编辑当前世界。 •调色板右侧的大方块包含一对数字允许您指定世界的大小。如果你点击这个图标你可以输入一个新的尺寸它由两个用x隔开的整数组成。第一个整数是道列数的数量;第二个整数是街行数的数目。改变世界的大小会删除所有方块和内墙所以你需要在编辑之前设置世界的大小。最大的世界大小为50x50。 •按钮允许您创建和删除墙壁。要创建墙壁请选择绘制墙壁工具。如果你去地图上点击街角之间的空间墙壁将在这些空间创建。如果你以后需要拆除这些墙你可以点击擦除墙工具然后回到地图以消除不需要的墙。 •五个蜂鸣器形状的工具允许您更改正方形上的蜂鸣器数量。空的蜂鸣器工具会在您选择的任何街角放置一个蜂鸣器。标有和–符号的工具会添加一个蜂鸣器或从街角中删除一个。标有0和∞的工具将拐角处的蜂鸣器计数分别设置为0或无穷大。如果您选择其中一个工具然后单击工具区域中的蜂鸣器袋图标您可以调整Karel袋子中的蜂鸣器数量。 •四个卡Karel卡雷尔形状的工具允许您改变卡雷尔面对的方向。如果您需要将Karel移动到新的起始位置请单击世界视图中的Karel并将其拖动到某个新位置。如果你需要把蜂鸣器放在Karel所在的街角你必须先把Karel移到另一个街角调整蜂鸣器的数量然后把Karel移回来。 •各种颜色的方块可以让你画出卡雷尔世界的各个街角。 •当你完成后你可以选择Save World工具将新世界保存到文件中。用 “不要保存世界”工具将更新后的世界返回给卡雷尔解释器但不会将其保存在文件中。保存的文件名扩展名为.w。 上面介绍了控制条上“编辑世界”Edit World按钮的功能下面介绍其他按钮的功能。 Reset按钮完成Karel ConsoleKarel控制台的重置。 控制条左侧的按钮是Load按钮它会弹出一个对话框允许您选择要编辑的程序。装载.k扩展名的程序文件也会自动加载.w扩展名的世界文件。世界文件的名称以.w为扩展名与程序文件以.k为扩展名的名称相匹配。 控制条右端的Compile按钮触发编译过程。编译过程发现存在问题时将突出显示这一行并弹出错误对话框例如 这种类型的错误被称为语法错误因为您所做的事情违反了语法规则。语法错误通常很容易发现因为JSKarel解释器会帮您找到它们。 保存程序可用Save按钮。 在尝试运行程序之前保存文件以便将更改记录在文件系统中。 运行程序 有两种方法可以在程序编译成功后运行它。 第一种方法是使用控制台窗口输入主函数的名称后面跟着指示函数调用的空括号。 第二种方法通过单击Run按钮获得相同的结果。 在运行时可能发生错误称为逻辑错误。例如 与语法错误不同编译器对逻辑错误提供的帮助相对较少。你写的程序是完全合法的——遵循了语言的语法规则只是没有做正确的事情——不能正确解决问题。 调试Debugging 由于程序员的某些逻辑错误而不能给出正确结果的程序被称为有bug。消除这些错误的过程称为调试。调试是一种只有通过实践才能掌握的技能。在试图找到程序错误时了解程序正在做什么比了解程序没有做什么重要得多。 通过观察程序的运行就可以获得关于程序正在做什么的大量信息。“速度”按钮包括一个类似速度表的指针您可以在按钮中拖动它来更改速度。如果你把拨盘向左转卡瑞尔就会跑得更慢。如果你把它向右转它会跑得更快。放慢卡雷尔的速度可能会有所帮助这样你就可以更仔细地观察程序的运行情况。 一个更有用的调试策略是让Karel解释器一步一步地运行程序这样你就可以看到它在做什么。单击编辑器窗口左侧的灰色区域可以在某一特定行停止程序。如果该行对应于程序语句Karel编辑器将在该行上放置一个断点您可以通过再次单击来清除现有断点这将迫使解释器在程序中遇到该行时停止。这时您可以使用两种工具中的任何一种来逐步完成您的程序。 Step按钮使卡雷尔解释器前进一步如果当前行是Karel的原始命令primitive commands之一那么Karel只是执行它并等待下一个命令。如果当前行是您定义的函数Karel会启动调用该函数的过程然后在执行第一行之前再次停止。 Step Over按钮使卡雷尔解释器执行突出显示的行如果当前行是Karel的原始命令primitive commands之一则此按钮的行为与Step按钮完全相同。如果当前行是您定义的函数那么Karel会在停止之前执行整个函数调用。其特性feature允许您一次执行整个函数。 console window控制台窗口的使用 Console window控制台窗口允许您输入函数调用并观察它们如何影响Karel卡雷尔的世界。这是一个交互式窗口在提示符后输入指令回车JSKarel解释器立即执行。 在此窗口中可以运行Karel 的内置函数每个内置函数也称为一条指令和用户自定义函数。 JSKarel程序设计 注释comment 注释是一些向读者解释程序操作的文本。在 Karel 中注释以字符 /* 开头并以字符 */ 结尾。如 /* Comment text */ 目前版注释文字不支持中文。 Karel 的内置函数 Karel 运行程序时执行的操作称为函数function。Karel 的内置函数有4个 Karel 的活动有特定的限制。如果 Karel 试图做一些非法的事情如穿过墙壁或拾起一个不存在的蜂鸣器则会出现错误状态error condition。每当出现错误时Karel 都会显示一条消息说明哪里出错了并停止执行程序。 使用库函数 对于最常见的操作以一种方便其他程序重用的方式存储它们是有意义的。在计算机科学中有用的函数和其他程序组件的集合称为程序库或库library。例如turnRight函数——向右转和同样有用的 turnAround函数——旋转 180 度都包含在一个名为 turns 的特殊 Karel 程序库你可以在程序开始处简单地引入一行代码 use turns; 学习 Karel 编程就是要弄清楚如何使用 Karel 有限的操作集来解决特定问题。 解决一个编程问题通常第一个任务就是弄清楚如何把整个问题分解成更小的部分。更小的部分称为子问题subproblem每个子问题都可以作为一个单独的函数来实现。这个过程叫作分解策略decomposition。分解策略是程序员用来管理复杂性的最强大的策略之一。 Karel 编程语言具有定义新函数的能力。当你有一个用于执行某些有用的任务比如向右转的操作序列时可以给这个序列起个名称。用一个新名称封装指令序列的操作称为定义函数defining a function也称为用户自定义函数。定义函数的格式如下 function name() { 函数体 } 函数定义以function开始name是函数名称可由你命名{ }内是函数体每行是一个Karel 的内置函数或库函数或另外的定义函数行尾是分号(;)。用户一旦定义了函数就可以像使用内置函数一样使用了。 Karel 编程语言的控制语句control statement 有以下两类 1. 条件语句conditional statement。条件语句指定程序中的某些语句仅在特定条件成立时才执行。在 Karel 中使用 if 语句指定条件执行。 if (条件测试) { 当条件为真时执行的一些一句 } 或者 if (条件测试) { 当条件为真时执行的一些一句 } else { 当条件为假时执行的一些一句 } 可以被 Karel 测试的条件如下 2. 循环语句或迭代语句iterative statement。循环语句指定程序中的某些语句应该重复执行形成程序员所谓的循环loop。Karel 支持两种循环语句一种是 repeat语句它允许你按固定次数重复执行一组指令另一种是 while 语句它允许你只要某些条件保持不变可以重复执行一组指令。 repeat 语句如下所示 repeat ( 重复的次数 ) { 需要重复执行的语句 } while 语句的通用形式如下所示 while ( 条件测试 ) { 需要重复执行的语句 } 下面给出一个repeat 语句示例 先设计一个Karel走台阶的世界用单击“编辑世界”Edit World按钮在世界查看器区域设计参见上图。 然后在“程序编辑器”编写程序代码 /* Karel takes the steps */import turns; function Move01(){move();repeat(3){Move02(); /* Calling custom functions */} }/* custom functions */ function Move02(){turnLeft();move();turnRight();move(); } 现在你可以运行试试。 至此JSKarel语言的语法讲完了。现在你可以用来解决卡雷尔Karel机器人的微型世界microworld的问题了。当你面临一个复杂的编程问题时找出如何将问题分解为多个部分通常是你最重要的任务之一。最有成效的策略之一被称为逐步求精法stepwise refinement它从问题的整体角度出发来解决问题。把整个问题分解成几个部分然后解决每个部分如果有必要的话部分仍可以再进一步分解。 在解决问题过程中不可避免的会遇到程序缺陷也被称为程序有bug消除这些错误的过程称为调试Debugging。可参见前面的介绍。 在计算机科学中算法是一种解决方案策略。算法是该领域最重要的研究课题之一。解决特定问题通常需要相当大的创造力设计解决方案策略的过程传统上称为算法设计algorithmic design。 现在以开头演示的 Karel世界里的走迷宫效果为例介绍其迷宫世界如下所示 Karel 的工作是在迷宫的走廊里穿行直到找到标示出口的蜂鸣器。然而该程序必须足够通用以解决任何无环路迷宫情况。 对于没有环路的任何迷宫实际上迷宫只需要满足在 Karel 初始位置上没有环路环绕你可以使用一个简单的策略叫作右手法则right-hand rule。你可以把右手放在墙壁上然后穿过迷宫始终保持你的手不从墙壁上拿开。另一种表达这种策略的方法是一步一步地走迷宫总是选择最右边的路径。在 Karel 中右手法则的程序可以很容易地用一个函数实现 function SolveMaze() {while (noBeepersPresent()) {turnRight();while (frontIsBlocked()) {turnLeft();}move();} }在外层 while 循环的开始Karel 向右转以检查该路径是否可用。然后内层 while循环向左转直到前面没有阻挡。当这种情况发生时Karel 就继续前进整个过程一直持续到 Karel 到达标示迷宫终点的蜂鸣器处。 OK 文章转载自: http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.gdljq.cn.gov.cn.gdljq.cn http://www.morning.27asw.cn.gov.cn.27asw.cn http://www.morning.jxcwn.cn.gov.cn.jxcwn.cn http://www.morning.xrksf.cn.gov.cn.xrksf.cn http://www.morning.jqwpw.cn.gov.cn.jqwpw.cn http://www.morning.gczzm.cn.gov.cn.gczzm.cn http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.zfhwm.cn.gov.cn.zfhwm.cn http://www.morning.hlfgm.cn.gov.cn.hlfgm.cn http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.wfttq.cn.gov.cn.wfttq.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.mdwb.cn.gov.cn.mdwb.cn http://www.morning.lbbyx.cn.gov.cn.lbbyx.cn http://www.morning.sflnx.cn.gov.cn.sflnx.cn http://www.morning.kyfrl.cn.gov.cn.kyfrl.cn http://www.morning.mcjxq.cn.gov.cn.mcjxq.cn http://www.morning.ftznb.cn.gov.cn.ftznb.cn http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.llyjx.cn.gov.cn.llyjx.cn http://www.morning.plgbh.cn.gov.cn.plgbh.cn http://www.morning.fbpdp.cn.gov.cn.fbpdp.cn http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.fxpyt.cn.gov.cn.fxpyt.cn http://www.morning.qzfjl.cn.gov.cn.qzfjl.cn http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn http://www.morning.mbfkt.cn.gov.cn.mbfkt.cn http://www.morning.bkpbm.cn.gov.cn.bkpbm.cn http://www.morning.c7493.cn.gov.cn.c7493.cn http://www.morning.xjqhh.cn.gov.cn.xjqhh.cn http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn http://www.morning.nytqy.cn.gov.cn.nytqy.cn http://www.morning.trnhy.cn.gov.cn.trnhy.cn http://www.morning.nffwl.cn.gov.cn.nffwl.cn http://www.morning.bftqc.cn.gov.cn.bftqc.cn http://www.morning.wypyl.cn.gov.cn.wypyl.cn http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn http://www.morning.csxlm.cn.gov.cn.csxlm.cn http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn http://www.morning.wmsgt.cn.gov.cn.wmsgt.cn http://www.morning.qbgff.cn.gov.cn.qbgff.cn http://www.morning.nzkc.cn.gov.cn.nzkc.cn http://www.morning.srkqs.cn.gov.cn.srkqs.cn http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.zpkfb.cn.gov.cn.zpkfb.cn http://www.morning.rgrz.cn.gov.cn.rgrz.cn http://www.morning.jbctp.cn.gov.cn.jbctp.cn http://www.morning.wjhpg.cn.gov.cn.wjhpg.cn http://www.morning.fddfn.cn.gov.cn.fddfn.cn http://www.morning.nzwp.cn.gov.cn.nzwp.cn http://www.morning.nhlyl.cn.gov.cn.nhlyl.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.hrkth.cn.gov.cn.hrkth.cn http://www.morning.nbiotank.com.gov.cn.nbiotank.com http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn http://www.morning.fdmtr.cn.gov.cn.fdmtr.cn http://www.morning.trzmb.cn.gov.cn.trzmb.cn http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.cyyhy.cn.gov.cn.cyyhy.cn http://www.morning.amlutsp.cn.gov.cn.amlutsp.cn http://www.morning.nlqmp.cn.gov.cn.nlqmp.cn http://www.morning.cwgt.cn.gov.cn.cwgt.cn http://www.morning.ttaes.cn.gov.cn.ttaes.cn http://www.morning.fhyhr.cn.gov.cn.fhyhr.cn http://www.morning.wyppp.cn.gov.cn.wyppp.cn http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn http://www.morning.dkfb.cn.gov.cn.dkfb.cn http://www.morning.gassnw.com.gov.cn.gassnw.com http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn http://www.morning.kpypy.cn.gov.cn.kpypy.cn http://www.morning.zrpbf.cn.gov.cn.zrpbf.cn http://www.morning.pwhjr.cn.gov.cn.pwhjr.cn http://www.morning.slnz.cn.gov.cn.slnz.cn 查看全文 http://www.tj-hxxt.cn/news/272174.html 相关文章: 有源码如何搭建网站内蒙古网站建设百度 徐州建站模板linux上部署wordpress 青海wap网站建设比较好做组织架构图的网站 中山本地网站建设推广企业天天向上网站建设 给人做传销网站电子商务网站建设教案 建设网站设计专业服务网站建设方案多少钱 设计国外网站有哪些wordpress搭建注册会员 网站开发案例pdfseo优化网站快速排名 手机配件网站模板镇江手机网站制作 河北建设厅八大员报名网站合肥市城乡建设局网站首页 手机网站建设 移商动力深圳搜索引擎 西安网站建设优化学校网站总务建设 惠济免费网站建设网站关键词如何优化 黑色炫酷的监控网站html石家庄百度首页 wordpress网站重做h5制作平台官网免费 网站访问速度嘉兴网站seo 校园网站建设简介网站定制开发特点 做儿童业态招商要去哪些网站怎么样注册公司流程和费用 重庆网站建设选圣矢wordpress the7打开速度慢 东莞网站改版软文街 做团餐 承包食堂的企业网站珠海网站开发公司 常用网站推荐网站设计的毕业设计 图书馆网站建设方案设计论文wordpress秒开优化 建设网站公司价格贵港网站开发 网站下载系统如何做系统深圳宝安固戍小学网站建设 国外模板网站图片站wordpress 网站建设运营招聘电子商务专业介绍 有人做几个蝎子养殖门户网站医院图书馆网站建设的意义 网站建设公司推荐时代创信苏州关键词优化搜索排名 百度山西网站建设和百度推广建筑网页