围棋问题

  关于代码的阅读,写注释,我的代码阅读量和阅读能力都有限,而且是关于没有基础的围棋问题,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. php无法上传大文件完美解决方案

    php.ini无法上传大文件完美解决办法 1.打开php.ini(打开方式就不用说了,百度一大堆) 2.查找post_max_size 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表 ...

  2. RecyclerView(4)简单示例

    1,RecyclerViewFrgmt import com.example.adapter.R; import android.app.Fragment; import android.os.Bun ...

  3. BZOJ2482: [Spoj1557] Can you answer these queries II

    题解: 从没见过这么XXX的线段树啊... T_T 我们考虑离线做,按1-n一个一个插入,并且维护区间[ j,i](i为当前插入的数)j<i的最优值. 但这个最优值!!! 我们要保存历史的最优值 ...

  4. main cannot be resolved or is not a field

    今天在做XML解析的时候,总是给我报 XML Parsing Error: XML or text declaration not at start of entity 的错误,后来查了下讲大概意思是 ...

  5. ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking

    #!/bin/bash # # ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking # 说明: # 本文主 ...

  6. I.MX6 Linux udev porting

    /*********************************************************************** * I.MX6 Linux udev porting ...

  7. LeetCode: MergekSortedLists

    Title: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its comple ...

  8. HWM的实验

    HWM是数据段中使用空间和未使用空间之间的界限,假如现有自由链表上的数据块不能满足需求,Oracle把HWM指向的数据块加入到自由链表上,HWM向前移动到下一个数据块.简单说,一个数据段中,HWM左边 ...

  9. 域名下Web项目重定向出现DNS域名解析错误问题

    问题: 项目使用的是阿里云的ESC,前几天为IP地址添加了域名 发现发送正常请求时跳转没问题,但发送重定向请求时,页面就会出现DNS域名解析错误的情况 1.我在Tomcat的server.xml中配置 ...

  10. android.view.ViewRootImpl$CalledFromWrongThreadException错误处理

    一般情况下,我们在编写android代码的时候,我们会将一些耗时的操作,比如网络访问.磁盘访问放到一个子线程中来执行.而这类操作往往伴随着UI的更新操作.比如说,访问网络加载一张图片 new Thre ...