`
tianshi_kco
  • 浏览: 21531 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

水下探矿算法实现

    博客分类:
  • java
 
阅读更多

题目要求如下:

水下采矿机器人

 

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

如下所示为一个大小为10*10的采矿区域,对应样例中附带的testcase00

(测试用例使用的区域固定为10*10):



 

 

x轴为从上往下方向,y轴为从左往右方向。

黑色区域为障碍区(数值为9999999),里面不会有矿,采矿器也不能进入,障碍区只会贴近区域底部或边缘,或者贴近另一个障碍;几个贴近的障碍必须有一个贴近区域底部或边缘

绿色区域为资源区(数值为1-1000),里面有一定数量的资源,资源数不确定;资源只会贴近区域底部或边缘,或者贴近障碍区

如下图,编号为AB的是正常的障碍,C为不可能存在的障碍;编号为1234的为正常的资源,不可能存在编号为56类型的资源。



 

除障碍区以及资源区,其他可通行区域用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();

 

 

  • src.rar (4.9 KB)
  • 下载次数: 118
  • 大小: 27.3 KB
  • 大小: 20.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics