将3名玩家映射到4人桌

时间:2012-06-18 00:37:24

标签: c++

假设我有一张顺时针方向的表:

   2
1      3
   0

这在4人游戏中效果很好,但在3人游戏中,服务器看不到第4张椅子。因此,我必须映射3个玩家,其中一个可能坐在座位[3]上,形成3 [2]个元素阵列。

因此,如果玩家坐在2,3,0,那么2个地图为0,3个地图为1,0个地图为2.如果座位为1,3,0,则将1到0,3到1映射,和0到2.

如果我想要一个std地图,这将是一个很好的算法吗?

1 个答案:

答案 0 :(得分: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循环。