2013-05-05 84 views
0

我的問題對我來說看起來很簡單,但我無法將其劃分爲能夠將其編程到我的遊戲中的基本要素。工作搜索算法

首先不同的職業需要不同的技能,這些技能都包含在課內Person。我有一個world map,我可以要求所有空的建築物,從而找到所有可用的工作。

有了這些信息,我想從一些權重來計算玩家可以在每個職業上修改填補某個位置的重要性。

所以我目前的做法是這樣的僞代碼:

Job findJob(wm : WorldMap) { 
     Queue priority <- empty; 
     for each building { 
     queue.add(skill * need); 
     } 
     return prority.max(); 
    } 

這聽起來低效傻還是你看到,你認爲我應該知道的任何特殊情況?

+0

'空建築物'與'工作'和'技能'粘合在一起如何? – naivists 2013-05-05 12:28:40

+0

不確定你的意思是'空建築物',但想法是每個建築物都可以給我一份具有某種技能需求的工作。此類型在這個僞代碼中沒有很好的定義也不正確 – miniwolf 2013-05-05 14:44:16

回答

0

既然你只是想找到最大的建築物,你不需要任何隊列。只要將當前最大值保留在變量中,並在發現更好的變量時將其替換。

+0

謝謝,這是一個非常好的點 – miniwolf 2013-05-05 14:43:30

0
Probably this would be another pseudo code which may help: 

    Job findJob(wm : WorldMap) { 
    for each portals from job portal1 to http://9kriwala.com 
    Queue priority <- empty; 
    for each building { 
    queue.add(skill * need); 
    } 
    return prority.max(); 
    }