【解決方法】各プレイヤーからその場所までの距離を計算し、これまでに距離の値が最も小さいプレイヤーを追跡しようとしています

[ad_1]

ただし、その方法がわかりません。 基本的に、このメソッドでの私の目標は、利用可能で指定された場所に最も近いアシスタントを返すことです。

私が試したこと:

これが私の方法が現在どのように見えるかであり、それを機能させる方法がわかりません。

Java
public Assistant findNearestAvailable(int location)
    {
        Iterator<Assistant> it = assistants.iterator();
        int closetDistance = 0;
        while(it.hasNext()){
            Assistant assistant = it.next();
            int distance = location - assistant.getLocation();
            Assistant closetAssistant;
            if(distance < assistant.getLocation() && assistant.isAvailable()){
                closetDistance++;
                }
            }
        }
        return null;
    }

解決策 1

Java
if(distance < assistant.getLocation() && assistant.isAvailable()){
    closetDistance++;

このコードは変数に 1 を追加するだけなので、誰が最も近いかはわかりません。 次のようなものが必要です:

SET closestDistance to Integer.MAX_VALUE
SET closestAssistant to NULL
FOREACH assistant in Assistants() // check all assistants
DO
    IF assistant.isAvailable() // but only the availalble ones
    THEN
        int distance = location - assistant.getLocation()
        if distance < closestDistance // if this is closer than any previous ones
        THEN
            closestDistance = distance // save the details
            closestAssistant = assistant
        FI
    FI
DONE

ループの終わりに closestDistance 最も近い利用可能なアシスタントまでの距離を含める必要があります。 closestAssistant 担当アシスタントになります。

[ad_2]

コメント

タイトルとURLをコピーしました