c++ - 将 3 名玩家映射到 4 人 table

标签 c++

<分区>

假设我有一张像这样顺时针旋转的 table :

   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 映射,那么执行此操作的好算法是什么?

最佳答案

假设您有一个有序的座位结构,并由于您的实现细节不明确而做出一些假设:

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 循环。

关于c++ - 将 3 名玩家映射到 4 人 table ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075875/

相关文章:

c++ - Linux下文件读取方式不同? C++

c++ - ISO 9660 : How to locate children of a directory

c++ - 我可以让 GCC 在将太宽的类型传递给函数时发出警告吗?

c++ - 提供方法指针和派生类型对象时 std::bind 的一致性

c++ - 来自可变模板的模棱两可的成员请求

c++ - OpenCV drawContours 奇怪的行为

c++ - 使用 Windows API 文件函数 c++

c++ - 如何使用 C++14 和 C++1z 中的功能缩短此可变参数模板代码?

c++ - std::string 类查找函数未返回预期结果。我可能使用不当

c++ - 派生类中的成员字段别名(无访问函数)