| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:求助一个关于方格子编程的问题
只看楼主 加入收藏
xixiao
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-10-9
收藏
 问题点数:0 回复次数:0 
求助一个关于方格子编程的问题
各位大侠你们好:
我有一个问题请你们帮忙编一下,我是外行.
多谢了!!!
创建一个仿真系统,使得用户可以操纵机器人来探索虚拟世界,并观察机器人的行为。
虚拟世界用来模拟现实世界中的不同环境(这里假设它是由14×14的方格构成的,如下图所示)。在虚拟世界的特定区域存在一些障碍物,机器人在运动过程中,必须避开这些障碍物。在虚拟世界的交叉点上可能会放置单个的字符。机器人到达这个位置时,用户可以控制机器人读取这个字符,或者用其他的字符替换这个位置的字符。机器人在虚拟世界中只能沿着交叉点向东、南、西、北四个方向做直线运动(不能走斜线)。

机器人维护着两个变量b1和b2,用来保存从虚拟世界中读取的字符。
机器人有6种基本动作:
(1) Move:机器人朝着正前方移动一个交叉点(以上图中的机器人为例,执行一次“Move”动作之后,机器人由位置(8,1)移动到(7,1))。
(2) Left:机器人原地沿逆时针方向旋转90度。
(3) Read:机器人读取其所在位置的字符,并将这个字符的值赋给b1;如果这个位置上没有字符,则不改变b1的当前值。
(4) Write:机器人将b1中的字符写入机器人当前所在的位置,如果这个位置上已经有字符,该字符的值将会被b1的值替代。如果这时b1没有值,即在执行Write动作之前没有执行过任何Read动作,那么需要提示用户相应的错误信息。
(5) b1=b2:将b2的值赋给b1,b1的值被b2的值替代。
(6) b2=b1:将b1的值赋给b2,b2的值被b1的值替代。
用户有3种操控机器人的方法:
(1) 手动控制:通过直接调用机器人的基本动作使机器人产生相应的行为。例如用户直接发送“Move”命令,使机器人移动到下一个交叉点。
(2) 自动控制(Run):事先编排好机器人的动作序列(这里称为指令),直接执行这个指令,使机器人可以连续运作。
(3) 单步控制(Step):是自动控制方式一种特殊形式,只执行指定指令中的一个动作。单步控制与手动控制的区别在于,单步控制时执行的是指令中的动作,只有一种控制方式,即执行下个动作;而手动控制时有6种基本动作可控制。
限定条件
(1) 机器人不能跨越虚拟世界的边界,即机器人的活动范围只能在上图所示的14×14 的方阵内。
(2) 机器人不能穿越障碍物,只能避开。
(3) 若机器人试图跨越边界或穿越障碍物,则必须提示用户,不允许执行这个操作。
(4) 变量b1、b2的值只能通过机器人的“Read”、“b1=b2”、“b2=b1”动作设置,不能在程序中进行初始化。
须仿真的活动
(1) 创建虚拟世界:根据障碍物、字符的特定位置(针对特定的虚拟世界,这些位置在仿真过程中不能改变)和机器人的初始位置,创建机器人的活动环境(这时称虚拟世界处于其初始状态)。虚拟世界处于初始状态时,默认为机器人都面向北方。
(2) 用户手动控制机器人的行为:要能够提供用户直接调用机器人基本动作的方式。
(3) 用户采用自动控制方式操控机器人。
(4) 用户采用单步控制方式操控机器人。
(5) Reset:终止机器人的活动,并回到虚拟世界的初始状态。
(6) 提示用户错误操作:在仿真过程中,若出现错误而导致仿真活动无法继续进行时,要给出明确的错误提示信息。
仿真时的可变参数
(1) 创建虚拟世界所必须的信息(障碍物、字符的位置和机器人的初始位置)必须以文件的形式输入到仿真系统中。这样在仿真的过程中,用户可以通过选择不同的文件来创建不同的虚拟世界,改变机器人的工作环境。
(2) 指令必须以文件形式输入到仿真系统中,这样用户可以通过选择不同的指令文件来改变机器人的行为。
(3) 在执行某条指令时,每两个动作之间可以有短暂的延迟,即机器人需等待这个延迟结束后,才能进行下一个动作。延迟的长短由用户在开始操控机器人之前指定。用户若不指定,则采用仿真系统的默认值:1秒。
开发结果的行为特征
(1) 能够提供用户操控机器人的三种方式;
(2) 有简单的界面,以体现:
• 机器人和字符的当前位置。如果用数据而不是用图形表示,应给出机器人和字符的坐标,如:机器人的位置(8,1),字符F的位置(8,3),等等。
• 机器人的下一步操作(在手动控制方式下,不需要显示)。
• b1、b2的当前值。
搜索更多相关主题的帖子: 格子 
2007-10-12 15:47
快速回复:求助一个关于方格子编程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039017 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved