请教各位C语言的专家一道关于“吸尘机器人”程序的题目改如何编写
题目要求是这样:有一个吸尘机器人在一个已经生成好的地图里进行吸尘工作(地图由多个正方的单位格子组成,地图的X和Y轴的长度或者说是格子数由编程者输入,地图在生成的时候会随机在此地图上出现1-20个障碍物),地图上的灰尘位置也是随机的但是灰尘的数量和一个变量Y有关(比如Y=1表示地图上每个格子都有灰尘,如果Y=4则是每4个格子会随机出现1个有灰尘的格子)而且同时还会和另一个变量X有关(X表示在机器人做了N个‘动作’所消耗的时间,经过这段时间会有一个新的灰尘随机出现在机器人走过的格子中),机器人带有扫描仪可以预先扫描到障碍物和灰尘的位置以便选择最近的灰尘和最捷径的路线。机器人有一个电池容量为C,机器人每做一个‘动作’就会消耗掉一个单位的电量(通俗点就是一格电),机器人的‘动作’包括‘走一个格子’、‘吸一个灰尘’或是‘旋转一次’(例如:如果机器人在一个格子里做了走、吸、转三个动作也就代表在一个格子里它消耗个三格电)。地图的起始点也是随机生成的(会出现在地图的任何一个格子上),在地图的起始点有一个充电器,机器人要在没电之前返回起始点进行充电,充电的时间为CT,充满电后机器人将继续执行吸尘工作。如果在没电之前机器人未能返回起始点进行充电程序将结束。此外机器人的储灰囊也是有容量限制的,容量为S,一旦储灰囊满程序将自动结束。程序开始之前会为机器人定义一个总的模拟动作的数量T如果在完成T个动作后程序将自动结束(也就是说:“T-走的数-吸的数-转的数==0”程序结束)。最后题目要求要在屏幕上显示机器人行走的步数和旋转的次数。下面有个一个地图生成的PAP希望能给大家有一定帮助,由于只有德语版PAP的所以只能请大家见谅了,不过相信专家们一看就懂了,(*^__^*) 嘻嘻……。我在编程遇到的最大问题就是不知道如何编写机器人在随机生成的障碍物前如何绕开障碍物还要保持最捷径的路径。粗略翻译:Initialiserung der Umgebung:环境生成
Bitte geben Sie die Größe des Feldes in x-Richtung ein: 请输入地图的X方向的值。
Tabelle_max_X: X方向最大值
Feld_X=1:格子_X=1
radom(0,99)>=Hindernisse:随机生成0-99个障碍物(我的题目里要求是1-20个,所以不要理这个,呵呵!)
期待各位大人们的指导.. 刚刚写出了完整的PAP流程图,希望各位大人能够继续帮助我写完这个C语言程序
roboter.pdf
(119.41 KB)
[ 本帖最后由 sodimi 于 2014-11-21 19:23 编辑 ]