水下探矿算法实现

系统 1936 0

题目要求如下:

水下采矿机器人

 

某司研究出一种可以进行水下探测、采矿的机器人,该机器人可以在水下移动,进行资源探测,并且采集资源。现在请你实现该采集机器人的控制程序,控制机器人进行水下采矿。

如下所示为一个大小为 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();

 

 

水下探矿算法实现


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论