代码改变世界

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以后签入。