zoukankan      html  css  js  c++  java
  • homework-06&homework-09

    homework-06

    1) 把程序编译通过, 跑起来 , 把正确的 playPrev(GoMove) 的方法给实现了.

      

    public void playPrev(GoMove gm)
            {
                // need to reconstruct
                Point p = gm.Point;
                m_colorToPlay = gm.Color;    // Get current set point and the color of pieces
    
                clearLabelsAndMarksOnBoard();
                m_gmLastMove = gameTree.peekPrev();
    
                bDrawMark = true;
                Grid[p.X, p.Y].die();
                if (gm.DeadGroup != null)
                {
                    foreach (Point pt in gm.DeadGroup)
                    {
                        Grid[pt.X, pt.Y].setStone(gm.DeadGroupColor);
                    }
                }
                optRepaint();
                
                //show the movement information
                textBox1.Clear();
                textBox1.AppendText(gm.Comment);
                return; 
            }

    2)根据你选择的教材 (三本之一或更多),点评一下这个程序设计方面的不足,例如:编码风格,程序架构,程序的错误处理,文件处理,UI 等等.

      对于这份代码我只能呵呵了,代码基本上时一气合成,没有经过任何重构,读完一遍发现基本是在浪费生命,如果说这时让我们在练习重构的话,用这份这么RAW的代码代价不免太大了吧。

      编码风格:变量命名风格不统一,命令名已没有经过仔细的设计,还存在大量类似textbox1之类的写法。

      程序架构:完全看不出controler和model是如何分离的,识图也是手工控制绘制的,可维护性太差,对于游戏本身而言毫无模块可言,丝毫看不出有不同模块的划分,打谱和下棋完全在同时进行,而且两方面都有严重的bug。大量没有实意的代码让人不知所云,至今不理解mark和label发挥着怎样的作用。

      错误处理:代码直接进行错误判断,没有可圈可点之处。

      UI:实现上注重了很多细节,效果非常不错,但是在架构上没有解耦成独立的view,难以控制。

    3) 程序的注释, 请把这个程序中被标成 “zzzz” 的注释都恢复过来。

    详见https://github.com/swejlfdc/homework-06/tree/master/buaa_GO

    homework-09

    1. 了解Lambda的用法

      计算“Hello World!”中

      字母‘e’的个数

      字母‘l’的个数

    int count(string&& s, char ch) {
        int ret(0);
        for_each(s.begin(), s.end(), 
            [&ret, &ch](const char& val) { ret += (val == ch); }
        );
        return ret;
    }

    2. 练习使用智能指针

      打印“Hello World!”循环右移n位的结果

      Example:

        n = 1, output = “!Hello World”

        n = 3, output = “ld!Hello Wor"

    void RSHT(char* s, int n) {
        int len = strlen(s);
        unique_ptr<char[]> ts(new char[len + 1]);
        n %= len;
        strncpy(ts.get() + len - n, s, n);
        strncpy(ts.get(), s + n, len - n);
        ts[len] = '';
        strcpy(s, ts.get());
    }
  • 相关阅读:
    GridView编辑删除操作
    hdu 4857 逃生 拓扑排序+PQ,剥层分析
    每日回顾Shell —cat,tail,head
    uva:10700
    Unity多玩家网络游戏开发教程1章Unity带有网络功能
    android com.handmark.pulltorefresh 使用技巧
    Jsoup 抓取和数据页 认识HTTP头
    JDK8在Java转让Javascript脚本引擎动态地定义和运行代码
    2013-2014约半学期的学习和规划研究综述
    Javascript 设计模式 辛格尔顿
  • 原文地址:https://www.cnblogs.com/XDRegion/p/3440875.html
Copyright © 2011-2022 走看看