題目要求如下:
水下采礦機器人
?
某司研究出一種可以進行水下探測、采礦的機器人,該機器人可以在水下移動,進行資源探測,并且采集資源。現在請你實現該采集機器人的控制程序,控制機器人進行水下采礦。
如下所示為一個大小為 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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
