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

    先说我的填充部分

            public void playPrev(GoMove gm) //如果没有上一步
            {
                if (m_gmLastMove == null)
                {
                    return;
                }
                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();//重画棋盘
            }

    这个只要知道变量是干什么的就很好写了。

    其余注释在github中

    关于这程序的问题,乍一看,最严重的问题就是,只有一个源代码文件。

    然后我在程序最上方注意到了这个:

    /**
     *  Go Applet
     *  1996.11        xinz    written in Java
     *  2001.3        xinz    port to C#
     *  2001.5.10    xinz    file parsing, back/forward
     */

    瞬间就理解了。

    1996年的时候写的java代码,到了2001年就做了移植工作,思路应该还是原来java的。所以这个程序应该就算作是1996年的程序。

    看来这些年软件工程在不断有着巨大的飞跃。

    另外的问题就是程序的外观没有一种圆润感,特别是棋子没有质感,可以考虑将棋子换成贴图,而不是使用图形库直接描出来。各种元素也都可以换成贴图的形式。

    原来是这样:

    可以变成这样:

    每颗棋子上标好顺序,简洁有力

    还有就是可以配上音效,下棋,杀棋。有了音效就如同上阵杀敌一般

    还有就是给出局势图:

    把当前的气的标出来,也有利于新手学习。

    最最最大的问题还是,不能把所有代码都放到一个文件中。

    查找字符串在课上大家都已经谢过了,现在给出lambda表达式查找字符个数的代码:

    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int count=0;
        string str("hello, world");
        for_each(str.begin(), str.end(),[&count](char c) {
            if (c=='l') {
                count++;
            }
        });
        cout << count << endl;
        return 0;
    }

     查看文件、编译、运行截图(保证可用,代码在github中):

  • 相关阅读:
    Revit 二次开发参照属性
    存储过程分页 (多条件拼接)
    Dapper的使用
    C#实现简单的邮件发送
    ORM 简介
    Web Services简介
    事物、锁、存储过程
    游标和触发器简介
    ASP.NET 上传文件方法
    C# Web API 实现上传功能
  • 原文地址:https://www.cnblogs.com/yzong/p/3441202.html
Copyright © 2011-2022 走看看