iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0

回想一下這幾天做的事

function buildGraph:
以原始路線資料建立出路線網絡物件的函式

class VillageState:

  • 儲存各地點的狀態,狀態內包括配送機器人目前的位置待配送的包裹(陣列)
  • 單次移動的方法,方法內包括
    1. 辨識目前位置是否能到達目的地,若抵達不了則回傳當下狀態
    2. 更新待配送的包裹並篩除已配送項目

宅配機器人以 VillageState 為參數並回傳附近地點
但需要讓機器人記憶資料以決定要『往哪裡』進行配送
因此要對要將記憶資料傳送給它們並讓他們回傳新的記憶

runRobot 接收3個 parameter

  • state 表示整個村落的狀態及待運送包裹的資訊
  • robot 會回傳表示進行移動的策略
  • memory 為記憶的資料
function runRobot(state, robot, memory) {
    /*
    turn 為計算總移動的次數
    當所有包裹都被投遞,則脫離迴圈
    當還沒投遞完,則重複進行『移動』與更新狀態
    */ 
    for (let turn = 0; ; turn++) {
        if (state.parcels.length === 0) {
            console.log(`Done in ${turn} turns`);
            break;
        }
        let action = robot(state, memory);
        state = state.move(action.direction);
        memory = action.memory;
        console.log(`Move to ${action.direction}`);
    }
}

上一篇
Chapter 7 實作專案-2-day23
下一篇
Chapter 7 實作專案-4(隨機移動策略)-day25
系列文
溫故而知新:Eloquent Javascript 閱讀筆記26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言