#include <system.hpp>const int playerSize=20; //最大在线玩家个数
const int pNumOfG=4; //游戏最大玩家个数
const int paraSize=8; //最大信息参数个数
const int gameSize=6; //最大活动游戏个数
const error=0;class Msg //消息类
{
protected:
int num;
int mType;
int mLength;
AnsiString mHead;
AnsiString param[paraSize];
AnsiString IP;
public:
Msg(AnsiString Seqence,AnsiString IP);
__property AnsiString Param[int Index] = {read=getpara}; int numOfPara();
int getmType();
int getLength();
AnsiString getHead();
AnsiString getpara(int Index);
AnsiString getrIP();
AnsiString toSql();
};//---------------------------------------------------------------------------
struct pOnline //在线玩家纪录
{
AnsiString name;
AnsiString IP;
int timer; // 做连接超时计数器
pOnline(AnsiString,AnsiString);
};
class logList //在线玩家列表
{
friend class gameList;
private:
pOnline P[playerSize];
int num;
public:
logList();
void add(AnsiString pName,AnsiString IP) ;
void del(AnsiString pName) ;
AnsiString IP2name(AnsiString IP);
AnsiString name2IP(AnsiString name);
void aTimer(AnsiString pName); //加权
AnsiString sTimer(); //减权并返回超时者的IP};//---------------------------------------------------------------------------struct Game //游戏信息
{
AnsiString name;
AnsiString gameNum;
int numOfP;
int pOfG[pNumOfG];
Game(AnsiString GameName,int numOfPlayer);
bool start;
};class gameList //活动游戏列表
{
private:
public:
int num;
int Length;
Game game[gameSize];
gameList();
void add(int ID,AnsiString GameID,AnsiString gameNumber) ;
void del(AnsiString GameID) ;
void del1(AnsiString IP) ;
int joinByID(int usrID,AnsiString GameID);
void haltByID(int IP,AnsiString GameID);
// __property AnsiString node[int Index] = {read=getgame};
};//---------------------------------------------------------------------------class Player //玩家资料类
{
private:
AnsiString name;
AnsiString passwd;
AnsiString email;
int ID;
int status; public: Player(AnsiString,AnsiString,AnsiString,int,int);
AnsiString getname();
void setname(AnsiString);
AnsiString getpass();
void setpass(AnsiString);
AnsiString getemail();
void setemail(AnsiString);
int getID();
void setID(int);
int getstatus();
void setstatus(int);};//---------------------------------------------------------------------------
class playerList //缓冲玩家资料
{
private:
int num;
Player node[playerSize]; public:
__property AnsiString Node[int Index] = {read=getnode};
playerList(); AnsiString getName(Player node);
Player nodeByID(int ID);
int getnum();
void setnum(int);
Player getnode(int index);
int find(int); //返回指定ID用户在列表中的Index
bool add(Player);
bool del(int);
};
const int pNumOfG=4; //游戏最大玩家个数
const int paraSize=8; //最大信息参数个数
const int gameSize=6; //最大活动游戏个数
const error=0;class Msg //消息类
{
protected:
int num;
int mType;
int mLength;
AnsiString mHead;
AnsiString param[paraSize];
AnsiString IP;
public:
Msg(AnsiString Seqence,AnsiString IP);
__property AnsiString Param[int Index] = {read=getpara}; int numOfPara();
int getmType();
int getLength();
AnsiString getHead();
AnsiString getpara(int Index);
AnsiString getrIP();
AnsiString toSql();
};//---------------------------------------------------------------------------
struct pOnline //在线玩家纪录
{
AnsiString name;
AnsiString IP;
int timer; // 做连接超时计数器
pOnline(AnsiString,AnsiString);
};
class logList //在线玩家列表
{
friend class gameList;
private:
pOnline P[playerSize];
int num;
public:
logList();
void add(AnsiString pName,AnsiString IP) ;
void del(AnsiString pName) ;
AnsiString IP2name(AnsiString IP);
AnsiString name2IP(AnsiString name);
void aTimer(AnsiString pName); //加权
AnsiString sTimer(); //减权并返回超时者的IP};//---------------------------------------------------------------------------struct Game //游戏信息
{
AnsiString name;
AnsiString gameNum;
int numOfP;
int pOfG[pNumOfG];
Game(AnsiString GameName,int numOfPlayer);
bool start;
};class gameList //活动游戏列表
{
private:
public:
int num;
int Length;
Game game[gameSize];
gameList();
void add(int ID,AnsiString GameID,AnsiString gameNumber) ;
void del(AnsiString GameID) ;
void del1(AnsiString IP) ;
int joinByID(int usrID,AnsiString GameID);
void haltByID(int IP,AnsiString GameID);
// __property AnsiString node[int Index] = {read=getgame};
};//---------------------------------------------------------------------------class Player //玩家资料类
{
private:
AnsiString name;
AnsiString passwd;
AnsiString email;
int ID;
int status; public: Player(AnsiString,AnsiString,AnsiString,int,int);
AnsiString getname();
void setname(AnsiString);
AnsiString getpass();
void setpass(AnsiString);
AnsiString getemail();
void setemail(AnsiString);
int getID();
void setID(int);
int getstatus();
void setstatus(int);};//---------------------------------------------------------------------------
class playerList //缓冲玩家资料
{
private:
int num;
Player node[playerSize]; public:
__property AnsiString Node[int Index] = {read=getnode};
playerList(); AnsiString getName(Player node);
Player nodeByID(int ID);
int getnum();
void setnum(int);
Player getnode(int index);
int find(int); //返回指定ID用户在列表中的Index
bool add(Player);
bool del(int);
};
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;const
playerSize = 20; //最大在线玩家个数
pNumOfG = 4; //游戏最大玩家个数
paraSize = 8; //最大信息参数个数
gameSize = 6; //最大活动游戏个数
error = 0;type
Msg = class
published //消息类 protected
num: Integer;
mType: Integer;
mLength: Integer;
mHead: AnsiString;
_param: array [0..paraSize - 1] of AnsiString;
IP: AnsiString;
public
constructor Msg(Seqence, IP: AnsiString );
function GetPara(Index: Integer): AnsiString;
function numOfPara(): Integer;
function getmType(): Integer;
function getLength(): Integer;
function getHead(): AnsiString;
function getrIP(): AnsiString;
function toSql(): AnsiString;
property Param[Index: Integer]: AnsiString read GetPara;
end;type
pOnline = class //在线玩家纪录
name: AnsiString;
IP: AnsiString;
timer: Integer;
public
constructor pOnline(sName, sIP: AnsiString);
end;type
logList = class //在线玩家列表
private
P: array [0..playerSize - 1] of pOnline;
num: Integer;
public
constructor logList();
procedure add(pName, IP: AnsiString);
procedure del(pName: AnsiString);
function IP2name(IP: AnsiString): AnsiString;
function name2IP(name: AnsiString): AnsiString;
procedure aTimer(pName: AnsiString);
function sTimer(): AnsiString;
end;type
Game = class //游戏信息
name: AnsiString;
gameNum: AnsiString;
numOfP: Integer;
pOfG: array [0..pNumOfG - 1] of Integer;
public
constructor Game(sGameName: AnsiString; numOfPlayer: Integer);
function start: boolean;
end;
type
gameList = class //活动游戏列表
private
function GetGame(Index: Integer): AnsiString;
public
num: Integer;
iLength: Integer;
iGame: array [0..gameSize - 1] of Game;
constructor gameList();
procedure add(ID: Integer; GameID, GameNumber: AnsiString);
procedure del(GameID: AnsiString);
procedure del1(IP: AnsiString);
function joinById(usrID: Integer; GameID: AnsiString): Integer;
procedure haltById(IP: Integer; GameID: AnsiString);
property node[Index: Integer]: AnsiString read GetGame;
end;type
Player = class
private
name: AnsiString;
passwd: AnsiString;
email: AnsiString;
ID: Integer;
Status: Integer;
public
constructor Player(sName, sPasswd, sEmail: AnsiString; sID, sStatus: Integer);
function Getname(): AnsiString;
procedure SetName(Name: AnsiString);
function GetPass(): AnsiString;
procedure SetPass(sPass: AnsiString);
function GetEmail(): AnsiString;
procedure setemail(sPass: AnsiString);
function GetId(): Integer;
procedure SetID(iID: Integer);
function GetStatus(): Integer;
procedure SetStatus(iStatus: Integer);
end;
type
playerList = class //缓冲玩家资料
private
num: Integer;
_node: array [0..playersize - 1] of Player;
public
constructor pLayerList();
function getName(iNode: Player): AnsiString;
function NodeByID(ID: Integer): Player;
function getnum(): Integer;
procedure SetNum(iNum: Integer);
function getNode(Index: Integer): Player;
function find(ID: Integer): Integer;
function add(sPlayer: Player): Boolean;
function del(sPlayer: Integer): boolean;
property Node[Index: Integer]: Player read GetNode;
end;
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ Msg }function Msg.getHead: AnsiString;
beginend;function Msg.getLength: Integer;
beginend;function Msg.getmType: Integer;
beginend;function Msg.getpara(Index: Integer): AnsiString;
beginend;function Msg.getrIP: AnsiString;
beginend;constructor Msg.Msg(Seqence, IP: AnsiString);
beginend;function Msg.numOfPara: Integer;
beginend;function Msg.toSql: AnsiString;
beginend;{ pOnline }constructor pOnline.pOnline(sName, sIP: AnsiString);
beginend;{ logList }procedure logList.add(pName, IP: AnsiString);
beginend;procedure logList.aTimer(pName: AnsiString);
beginend;procedure logList.del(pName: AnsiString);
beginend;
begin
end;constructor logList.logList;
begin
end;function logList.name2IP(name: AnsiString): AnsiString;
begin
end;function logList.sTimer: AnsiString;
begin
end;
{ Game }
constructor Game.Game(sGameName: AnsiString; numOfPlayer: Integer);
begin
end;function Game.start: boolean;
begin
end;
{ gameList }
procedure gameList.add(ID: Integer; GameID, GameNumber: AnsiString);
begin
end;procedure gameList.del(GameID: AnsiString);
begin
end;procedure gameList.del1(IP: AnsiString);
begin
end;constructor gameList.gameList;
begin
end;function gameList.GetGame(Index: Integer): AnsiString;
begin
end;procedure gameList.haltById(IP: Integer; GameID: AnsiString);
begin
end;function gameList.joinById(usrID: Integer; GameID: AnsiString): Integer;
begin
end;{ Player }function Player.GetEmail: AnsiString;
begin
end;function Player.GetId: Integer;
begin
end;function Player.Getname: AnsiString;
begin
end;function Player.GetPass: AnsiString;
begin
end;function Player.GetStatus: Integer;
begin
end;constructor Player.Player(sName, sPasswd, sEmail: AnsiString; sID,
sStatus: Integer);
begin
end;procedure Player.setemail(sPass: AnsiString);
begin
end;procedure Player.SetID(iID: Integer);
begin
end;procedure Player.SetName(Name: AnsiString);
begin
end;procedure Player.SetPass(sPass: AnsiString);
begin
end;procedure Player.SetStatus(iStatus: Integer);
begin
end;{ playerList }function playerList.add(sPlayer: Player): Boolean;
begin
end;function playerList.del(sPlayer: Integer): boolean;
begin
end;function playerList.find(ID: Integer): Integer;
begin
end;function playerList.getName(iNode: Player): AnsiString;
begin
end;function playerList.getNode(Index: Integer): Player;
begin
end;function playerList.getnum: Integer;
begin
end;function playerList.NodeByID(ID: Integer): Player;
begin
end;constructor playerList.pLayerList;
begin
end;procedure playerList.SetNum(iNum: Integer);
begin
end;end.