围棋问题
关于代码的阅读,写注释,我的代码阅读量和阅读能力都有限,而且是关于没有基础的围棋问题,JAVA和C#混合的程序。不免参考了其他同学的思路,忘老师见谅。
1、playPrev(GoMove) 方法的实现
首先要了解函数的功能是关于棋子的重画,GoMove里面的DeadGroup存的是被吃掉的子,那么我们就需要把它们的位置都恢复。
public void playPrev(GoMove gm)
{
int a = m_gmLastMove.Point.X;
4 int b = m_gmLastMove.Point.Y;
int c = m_gmLastMove;
Grid[a, b].removeStone(); //删除这个点
if (c == null) return; //如果没有上一步则返回
c = gameTree.peekPrev(); //更新上一个点
if (gm.DeadGroup != null) //如果这个点删除之后有原来被删除的点有气了,则回复
foreach (Point pt in gm.DeadGroup)
{
repaintOneSpotNow(pt);
Grid[pt.X, pt.Y].setStone(gm.DeadGroupColor);
}
optRepaint(); //重绘图
return;
}
2、编码风格
每个人都有自己的风格,这个不好评定,但是好的编码风格应该具有易于阅读的特点。个人感觉作者的命名还是比较清晰规范的。
3、程序架构
这个程序的架构明显不符合清晰、逻辑清楚的现代程序设计的要求。代码基本上全部压缩在一起,只是做了少量的区分。一个文件贯穿了太多不同的内容,经常会出现UI和逻辑混在一起的情况。程序在编写之前没有经过系统的设计,导致类之间的关系很混乱。这可能也是邹老师故意为之,希望给我们以警戒。程序的可读性确实是非常重要。
4、错误处理
几乎等于没有,不知出BUG会怎样。
5、程序的注释
原谅我的能力较低,至今代码还没有读完,github以后签入。