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