0

次のように時計回りに動くテーブルがあるとします。

   2
1      3
   0

これは4人用のゲームでは正常に機能しますが、3人用のゲームでは、サーバーに4番目の椅子が表示されません。したがって、3人のプレーヤーをマップする必要があります。そのうちの1人は、座席[3]に座って3[2]要素の配列になります。

したがって、プレイヤーが2,3,0に座っている場合、2は0にマップされ、3は1にマップされ、0は2にマップされます。座席が1、3、0の場合、1から0、3から1、0から2.2。

このための標準マップが必要な場合、これを行うための優れたアルゴリズムは何でしょうか?

4

1 に答える 1

1

座席の順序付けられた構造があると仮定し、実装の詳細が明確でないため、いくつかの仮定を行います。

std::map<int, int> clockwisePositionMap;
int counter = 0;
for (Seat s : seatList) {
    if(s.isOccupied()) {
        clockwisePositionMap.insert( pair<int, int>(seat.getNumber(), counter));
        counter++;
    }
}

これはどちらの例とも一致しないことに注意してください。最初の優先順位は常に 0 ですが、問題がある場合は必要に応じて for ループを変更できます。

于 2012-06-18T00:49:19.650 に答える