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