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