gpt4 book ai didi

C++ 记分牌困难时期

转载 作者:行者123 更新时间:2023-11-27 23:23:21 24 4
gpt4 key购买 nike

再次问好 stackoverflow 的 friend 们,这真的很难,它一直在折磨我的大脑。我必须做的是,多人服务器端记分牌。基本上有 10 个客户端连接到我的服务器应用程序,在此事件期间,每当一个玩家杀死另一个玩家时,他的杀戮就会增加,每个连接到服务器的玩家都有一个类指针

class CUser
{
(...)
public:
unsigned m_uEventKills;
unsigned m_uEventDeaths;
(...)
};

m_uEvenKills 会在每次有人杀死某人时增加,当然,对于垂死的玩家,m_uEventDeaths 也会增加。想象玩家 a、b、c、d、e、f 他们每个人都有随机击杀(a、b、c、d ... 是指向 CUser 的指针)所以:

a->m_uEventKills is 72
b->m_uEventKills is 13
c->m_uEventKills is 2
d->m_uEventKills is 44
e->m_uEventKills is 21
f->m_uEventKills is 33

和死亡的随机值。

我有这个:

int nMax[10];

void OrganizeMax()
{
memset( &nMax, 0, sizeof( nMax ));
(...)

Organize max 必须填充 nMax,从 0 到 9(10 个顶级用户)从所有连接的用户读取(他们都拥有指向 CUser 的指针)->m_uEventKills,并设置为 nMax[0] 杀死最多的那个,到 nMax[1] 是杀戮最多的第二个,到 nMax[2] 是杀戮最多的第三个,依此类推......关于如何做到这一点有什么绝妙的想法吗?

-编辑

我会更简单,我有 10 个变量。

int a,b,c,d,e,f,g,h,i,j;
a = 3;
b = 61;
c = 29;
d = 44;
e = 12;
f = 8;
g = 27;
h = 11;
i = 0;
j = 4;

我需要将这些变量插入到

int nHold[10];

按降序排列,我该怎么做?

最佳答案

我不使用 ab ...f,而是使用 std::vector CUser(顺便说一句,我不喜欢将 CUser 作为类名):

std::vector<CUser> users;

如果这是唯一您关心的关于用户的顺序,我会将顺序定义为CUser 类的一部分:

class CUser { 

// ...
bool operator<(CUser const &other) const {
return m_uEventKills < other.m_uEventKills;
}
};

然后当您需要将用户按正确的顺序排序时,您可以这样做:

std::sort(users.begin(), users.end());

但是,您可能需要向 CUser 类添加一个 ID 号(或类似的东西)以跟踪哪个用户是哪个用户,而不管他们碰巧出现的顺序如何马上安排。

编辑:

要将 a...j 中的 int 的值按升序放入 nHold 中,您可能只想按现有顺序插入它们,然后排序:

nHold[0] = a;
nHold[1] = b;
//...
nHold[9] = j;

std::sort(nHold, nHold+9);

关于C++ 记分牌困难时期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11254262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com