本文主要是介绍水下探矿算法实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目要求如下:
水下采矿机器人
某司研究出一种可以进行水下探测、采矿的机器人,该机器人可以在水下移动,进行资源探测,并且采集资源。现在请你实现该采集机器人的控制程序,控制机器人进行水下采矿。
如下所示为一个大小为10*10的采矿区域,对应样例中附带的testcase00。
(测试用例使用的区域固定为10*10):
x轴为从上往下方向,y轴为从左往右方向。
黑色区域为障碍区(数值为9999999),里面不会有矿,采矿器也不能进入,障碍区只会贴近区域底部或边缘,或者贴近另一个障碍;几个贴近的障碍必须有一个贴近区域底部或边缘。
绿色区域为资源区(数值为1-1000),里面有一定数量的资源,资源数不确定;资源只会贴近区域底部或边缘,或者贴近障碍区。
如下图,编号为AB的是正常的障碍,C为不可能存在的障碍;编号为1、2、3、4的为正常的资源,不可能存在编号为5、6类型的资源。
除障碍区以及资源区,其他可通行区域用0表示。
红色为采矿机器人的出发点以及资源收集点,坐标固定为(0, 0),程序开始前采集机器人位于该点,采集完成之后需要在该点卸下采集的资源。用例最后检测该点采集的资源判定结果。
用户可以利用采集机器人提供的接口函数实现控制,接口函数如下:
/**
* 往特定的方向尝试执行移动操作,只移动一格
*
* @param direction 需要移动的方向:上(0)、下(2)、左(1)、右(3)
* @return操作结果:成功或失败,该方向是障碍物或区域底部(或边缘)时返回false
*/
boolean move(int direction);
/**
*
* 检测当前区域可采集的资源数
*
* @return当前区域可采集的资源数
*/
int detect();
/**
* 在当前位置执行采集操作
*
* @return返回采集到的资源数
*
*/
int collect();
/**
* 卸下所有采集的资源
*
* @return在规定的区域卸下则返回true,否则返回false
*/
boolean offload();
这篇关于水下探矿算法实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!