playPrev功能的实现

        public void playPrev(ref GoMove gm)
        {
            Point p = gm.Point;
            m_colorToPlay = gm.Color;    
            clearLabelsAndMarksOnBoard();
            m_gmLastMove = gameTree.peekPrev();
            bDrawMark = true;
            Grid[p.X, p.Y].die();
            if (gm.DeadGroup != null)
            {
                foreach (Point s in gm.DeadGroup)
                {
                    Grid[s.X, s.Y].setStone(gm.DeadGroupColor);
                }
            }
            optRepaint();
            textBox1.Clear();
            textBox1.AppendText(gm.Comment);
            return;
        }

方法是把棋子die(),然后遍历deadgroup,最终optrepaint重画

 

程序不足

1、变量名字好坑爹,一会有高端的Deadgroup,一会又变成低端的textbox1。。。不解释

2、看warning,很多变量存在但是没有使用过

3、程序没有合理规划,想到哪里写到哪里

 

注释在github上。。由于之前写了一次homework-06.。这次就命名为homework-06x

https://github.com/mxc11061102/homework-06x/blob/master/buaa_GO/Goboard.cs