围棋问题

  关于代码的阅读,写注释,我的代码阅读量和阅读能力都有限,而且是关于没有基础的围棋问题,JAVA和C#混合的程序。不免参考了其他同学的思路,忘老师见谅。

1、playPrev(GoMove) 方法的实现

  首先要了解函数的功能是关于棋子的重画,GoMove里面的DeadGroup存的是被吃掉的子,那么我们就需要把它们的位置都恢复。

 public void playPrev(GoMove gm)
{
  int a = m_gmLastMove.Point.X;
4   int b = m_gmLastMove.Point.Y;
  int c = m_gmLastMove;
  Grid[a, b].removeStone(); //删除这个点
  if (c == null) return; //如果没有上一步则返回
  c = gameTree.peekPrev(); //更新上一个点
if (gm.DeadGroup != null) //如果这个点删除之后有原来被删除的点有气了,则回复
  foreach (Point pt in gm.DeadGroup)
{
  repaintOneSpotNow(pt);
  Grid[pt.X, pt.Y].setStone(gm.DeadGroupColor);
}
  optRepaint(); //重绘图
return;
}

2、编码风格

  每个人都有自己的风格,这个不好评定,但是好的编码风格应该具有易于阅读的特点。个人感觉作者的命名还是比较清晰规范的。

3、程序架构

  这个程序的架构明显不符合清晰、逻辑清楚的现代程序设计的要求。代码基本上全部压缩在一起,只是做了少量的区分。一个文件贯穿了太多不同的内容,经常会出现UI和逻辑混在一起的情况。程序在编写之前没有经过系统的设计,导致类之间的关系很混乱。这可能也是邹老师故意为之,希望给我们以警戒。程序的可读性确实是非常重要。

4、错误处理

  几乎等于没有,不知出BUG会怎样。

5、程序的注释

  原谅我的能力较低,至今代码还没有读完,github以后签入。

 

homework-06的更多相关文章

  1. homework -06 围棋

    playPrev功能的实现 public void playPrev(ref GoMove gm) { Point p = gm.Point; m_colorToPlay = gm.Color; cl ...

  2. Machine Learning, Homework 9, Neural Nets

    Machine Learning, Homework 9, Neural NetsApril 15, 2019ContentsBoston Housing with a Single Layer an ...

  3. Final阶段第1周/共1周 Scrum立会报告+燃尽图 06

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2485] 版本控制:https://git.coding.net/liuyy08 ...

  4. 20181009-7 选题 Scrum立会报告+燃尽图 06

    Scrum立会报告+燃尽图(06)选题 此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2196 一.小组介绍 组长:刘莹莹 ...

  5. 20181120-8 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 06

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2414 版本控制地址    [https://git.coding.net ...

  6. 20181023-9 Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 06

    作业要求参见: https://edu.cnblogs.com/campus/nenu/2018fall/homework/2289 Scrum master:赵佳璐 一.小组介绍 组长:王一可 组员 ...

  7. Scrum立会报告+燃尽图(06)选题

    此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2195] 一.小组介绍 组长:王一可 组员:范靖旋,王硕,赵佳璐,范洪达 ...

  8. C语言l博客作业06

    C语言l博客作业06 问题 回答 这个作业属于哪个课程 C语言程序设计ll 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homew ...

  9. 《HelloGitHub月刊》第06期

    前言 <HelloGitHub>月刊做到第06期了(已经做了6个月了),在GitHub上获得了100+的stars,虽然不多,但是我很知足了,说明有人觉得这个项目是有价值的.同时园子中的' ...

  10. iOS系列 基础篇 06 标签和按钮 (Label & Button)

    iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...

随机推荐

  1. opencv 画延长线

    hough变换可以让我们检测到直线,这在前面已有详解,对于车道检测,我们需要其到图像边界的延长线一遍之后数据帧分析. 以下代码帮助我们在opencv中画延长线,本来想用虚线表示延长线的,无奈参数调不好 ...

  2. (五)CSS伪类(Pseudo-class)

    CSS伪类用于向某些选择器添加特殊的效果.伪类的语法如下: selector : pseudo-class {property: value} CSS类也可以与伪类搭配使用: selector.cla ...

  3. ubuntu13.04下载android4.0.1源码过程

    最初我参考的是老罗的博客http://blog.csdn.net/luoshengyang/article/details/6559955 进行下载安装的,但弄着弄着就发现不太对劲了.这里记录下详细过 ...

  4. SQL 分组排序分页(大神帮写的膜拜一下)

    查询全部: SELECT P3.ID, P3.Name, P3.AddTimeFROM (SELECT Name, MAX(AddTime) AS MaxAddTime FROM Product AS ...

  5. [HDOJ4612]Warm up(双连通分量,缩点,树直径)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4612 所有图论题都要往树上考虑 题意:给一张图,仅允许添加一条边,问能干掉的最多条桥有多少. 必须解决 ...

  6. Kafka学习笔记

    一.Kafka使用背景 1. Kafka的定义 是一个分布式消息系统,由LinkedIn使用Scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipel ...

  7. git cheat sheet,git四张手册图

  8. ASP.NET 共用类库1

    using System; using System.Collections.Generic; using System.Text; using System.Web; using System.We ...

  9. Buffer cache 的调整与优化

    Buffer cache 的调整与优化 -============================== -- Buffer cache 的调整与优化(一) --==================== ...

  10. Android 超仿Path时间轴和扇形菜单的效果

    网上看到的  ,仅此记录一下,用到的时候便于查找 效果如下: 源码下载地址 :  http://download.csdn.net/detail/abc13939746593/7251933