我有一个pelmanism游戏要编码。该游戏具有多人游戏的特点,可以跟踪玩家的分数。然而,我需要帮助来了解如何更新现有双链表中的一个现有变量,从另一个类调用。
以下是我尝试过的一些东西:
- 使用搜索算法搜索节点的特定
index
,然后调用updateNode
更新temp->score=(temp->score)+2
,但我无法从memoryGame
(调用方(内部访问在addNode(int index, string n, int score)
中创建的现有双链表。当我调用display()
时,它返回一个空列表。我从main
函数创建了节点,并在类之外调用addNode
函数
有关游戏的一些信息:
memoryGame
类处理游戏的执行ADTqueue
处理节点的初始化- 不在类中的其余函数用于处理节点(
add
、sort
和display
目的( - 双链表是在
addNode
函数中创建的(在所有类之外( - 游戏接受用户输入:游戏难度
level
和玩家人数qty
这是主代码,包括游戏发生的类和另一个管理双链表的类。https://github.com/addinaamiruddin/Multiplayer-Card-Game-with-Player-Details/blob/main/MAIN-GAME.cpp
我很想听听关于如何处理这个问题的建议。提前感谢那些决定帮助我调查的人,我真的很感激。
由于您有头和索引,只需在链接列表中搜索该特定节点即可。如果不需要双链表,那么我建议使用std::vector
。
node* getNodeByIndex(int index){
node *current = head;
int count = 0;
while(current != nullptr){
if(count == index){
return current; // returns searched node.
}
count ++;
current = current->next;
}
return nullptr;
}