c++大厅玩家问题 求大大相助

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:55:32
Game Lobby程序模拟一个游戏大厅—玩家的一个等候区,通常在在线游戏中,这个程序实际上并不涉及在线部分。它创建一个单独的玩家等候队列。程序用户运行这个模拟程序并有4个选择。他可以向大厅添加一个人、从大厅删除一个人(队列中的第一个人是最早离开的人)、清空大厅或者退出模拟程序。
(一)Player类
要做的第一件事情是创建一个Player类,用来代表在游戏大厅中等待的玩家。因为不知道大厅中同时有多少玩家,所以使用一个动态数据结构是有意义的。通常情况下,可以使用STL中的容器工具。但是我决定在这个程序中使用另一种方法,使用自己管理的动态分配内存来创建自己的容器。之所以这样做并不是因为这种方法是一种更好的编程选择,而是因为这样做可以展示一个更好的编程实例。

class player
{
private:
string m_Name;
string *p_Next;//指向下一个玩家
……………………
};
(二)Lobby类
Lobby类表示玩家等待的大厅或者队列。
管理者可以向等候的游戏大厅中添加一个玩家、删除一个玩家、清空整个大厅、遍历游戏大厅中的玩家信息。
接下来实现Lobby类的声明和成员函数的定义。

(三)Lobby::AddPlayer()成员函数
void Lobby::AddPlayer()成员函数将玩家添加到大厅队列的末尾。

(四)Lobby::RemovePlayer()成员函数
void Lobby::RemovePlayer()成员函数将删除队首处的玩家。

(五)Lobby::Clear()成员函数
void Lobby::Clear()成员函数将删除大厅中的所有玩家。
(六)Lobby::ChaKan()成员函数
Void Lobby::ChaKan()成员函数将会遍历游戏等候大厅中的所有玩家的信息。

拜托了 各位高人 高手 高高手

好像很简单
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

class Player
{
private:
string m_Name;
Player *m_pNext;
public:
Player(string name):m_Name(name),m_pNext(0){}
string GetName()const { return m_Name; }
Player * GetNext()const { return m_pNext; }
void SetNext(Player *player)
{
m_pNext=player;
}
};

class Lobby
{
private:
Player * m_pHead; //定义一个头指针
public:
void AddPlayer();
void RemovePlayer();
void Clear();
void ChaKan();
Lobby():m_pHead(0){}
~Lobby() { Clear(); }
};
void Lobby::AddPlayer()
{
cout<<"又来一个送死的"<<endl;
string name;
cin>>name;
Player *pNextPlay=new Player(name);
if(m_pHead==0) //如果头指针为空 将头指针指向新加入的玩家
m_pHead=pNextPlay;
else
{