飞扬围棋论坛

 找回密码
 注册
搜索
查看: 7599|回复: 9
打印 上一主题 下一主题

来一个棋谱结构

[复制链接]
跳转到指定楼层
1#
发表于 2003-9-8 09:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//vc6 code

#define COMMENTSIZE_SGF 16

typedef struct SGFProperty_t {
        struct SGFProperty_t *next;
        short name;
        char  value[COMMENTSIZE_SGF];
} SGFProperty;

typedef struct SGFNode_t {
        SGFProperty_t      *props;
        struct SGFNode_t *parent;
        struct SGFNode_t *child;
        struct SGFNode_t *brother;
} SGFNode;

class NodeCounter
{//集中new节点、属性,统一利用,最后集中销毁
public:
        NodeCounter()
        {
                m_count ++;
        }
        ~NodeCounter()
        {
                m_count --;
                if(m_count == 0)
                {
                        while(m_dGnode != NULL)
                        {
                                SGFNode *p = m_dGnode;
                                m_dGnode = m_dGnode->child;
                                delete []p;
                        }
                        while(m_dPnode != NULL)
                        {
                                SGFProperty *p = m_dPnode;
                                m_dGnode = m_dPnode->next;
                                delete []p;
                        }
                }
        }

        int GetObjectCount(){ return m_count;};
        int GetGNodeCount(){ return m_Gnodecount;};
        int GetPNodeCount(){ return m_Pnodecount;};

        static SGFNode* sgfNewQipuNode();
        static void sgfFreeQipuNode(SGFNode *node);
        static SGFProperty * sgfPNode();
        static void sgfFreePNode(SGFProperty *node);
private:
        static int m_count;
        static int m_Gstep; //=10*1.5^No.1
        static int m_Gnodecount;        //已用节点个数
        static SGFNode* m_Gnode;        //空闲的节点串
        static SGFNode* m_dGnode;        //取数组的第一个节点(不作它用)串联,作最后删除用
        static int m_Pstep; //=10*1.5^No.2
        static int m_Pnodecount;
        static SGFProperty * m_Pnode;
        static SGFProperty * m_dPnode;
};
class CSGFTree  
{
public:
        CSGFTree();
        virtual ~CSGFTree();
public:
        //记录棋谱
        SGFNode *root;
        SGFNode *lastnode;
protected:
        NodeCounter m_nodecouter;
public:
        //...
}
2#
发表于 2003-9-12 11:52 | 只看该作者
先收藏着,以后慢慢研究。
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2003-9-12 12:15 | 只看该作者
昨天上传的程序,里面有全部代码
回复 支持 反对

使用道具 举报

4#
发表于 2003-9-12 13:48 | 只看该作者
多谢了!

另,老兄什么时候混了个 Member 呢?是不是过几个月就送你一个啊?
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2003-9-15 15:17 | 只看该作者
以下是引用郝搏生在2003-9-12 13:48:39的发言:
另,老兄什么时候混了个 Member 呢?是不是过几个月就送你一个啊?

说什么呀?没搞懂,请详解
回复 支持 反对

使用道具 举报

6#
发表于 2003-9-15 15:20 | 只看该作者
-->
头衔:Member

是说你的头衔呢!
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2003-9-15 15:21 | 只看该作者
哦,我就懒得没改过
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2003-9-15 15:27 | 只看该作者
改一改,头像也改一改,哈哈
回复 支持 反对

使用道具 举报

9#
发表于 2003-9-15 15:28 | 只看该作者
噢,原来如此。
回复 支持 反对

使用道具 举报

10#
发表于 2003-9-17 21:04 | 只看该作者
看不懂!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|飞扬围棋网 ( 苏ICP备11029047号-1 )

GMT+8, 2024-4-19 17:09 , Processed in 0.141635 second(s), 19 queries .

since 2003飞扬围棋论坛 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表