代码改变世界

work_8

2013-11-25 10:54  heiheitian  阅读(180)  评论(1编辑  收藏  举报

1.把程序编译通过, 跑起来。

    读懂程序,在你觉得比较难懂的地方加上一些注释,这样大家就能比较容易地了解这些程序在干什么。

    把正确的 playPrev(GoMove) 的方法给实现了。 如果大家不会下围棋,那就需要大家实地或者上网练习一下围棋的死活,提子是怎么回事。这个应该一个小时就能搞定。

代码如下:

public void playPrev(GoMove gm)
        {
            Grid[m_gmLastMove.Point.X, m_gmLastMove.Point.Y].removeStone();//删除当前点
            m_gmLastMove=gameTree.peekPrev();//对上一个点更新,能够连续回溯
            if(gm.DeadGroup!=null)//对气进行恢复
            {
                foreach (Point pt in gm.DeadGroup)
                {
                    repaintOneSpotNow(pt);
                    Grid[pt.X, pt.Y].setStone(gm.DeadGroupColor);
                }
            }
            optRepaint();//更新
            return; 
        }
playPrev

2.根据你选择的教材 (三本之一或更多),点评一下这个程序设计方面的不足。

    1.带有绿波浪线的变量为未使用的变量,应予以删除。

    2.代码都压缩在一起,很不直观,而且不好维护,应该把不同功能的类放在不同的文件中,有更好的命名空间,便于理解。

    3.错误处理不好,没有使用try catch块。

    4.编码风格还好,格式规范,且变量的命名基本可以理解,不过也有些m_n之类的变量不易理解。

    5.UI很简约,不过也可以做的更美观。

3.程序的注释。

    已经尽量把大部分“ZZZZ”恢复过来,后面关于文件的处理没太看懂,代码在github中。

4.选择题。

    还没有想到什么好的可修改的功能。。。等有了灵感再写好上传到github吧

    对于人机对战和双人对战是很感兴趣的,大一时候做过四子棋的比赛,程序应分为两个模块,一个模块首先将当前气、棋盘等信息传入到AI返回值函数,得到返回值后对返回值进行处理,更新气、棋盘等信息;另一个模块则是处理人的输入,与现有的程序对输入的处理类似。

    对于网络对战对于网络传输不是太懂,不过功能应该类似,对两个人的输入分别处理后对各项信息进行传输。

5.关于脑电波那篇论文只能说不明觉厉。。。