添加点目功能,虽不中,不远也。还是先看看截图吧。

确保其可行,再看一张:

其点目结果,还是比较令人满意的。这主要得益于多遍扫描,如编译器的词法分析阶段,下面的代码可以证明:

                private void InitMeshes()
{
UpdateMeshes1(); if (StepCount < ) return; UpdateMeshes2();
UpdateMeshes3();
UpdateMeshes4();
UpdateMeshes4(); // 二次扫描有必要
UpdateMeshes5();
UpdateMeshes6();
}

InitMeshes()

主要思路,也不过如此,实现的关键点,在于 UpdateMeshBlocks() 方法:

                 void UpdateMeshBlocks(List<Pos> poses, List<PosBlock> blocks)
{
List<Pos> copyPoses = poses.ToList();
if (copyPoses.Count == ) return; List<Pos> tmp = new List<Pos>();
foreach (var pos in copyPoses) {
if (tmp.Count == ) tmp.Add(pos);
var links = LinkPoses(pos);
if (tmp.Intersect(links).Count() > ) {
links.ForEach(l => {
if (copyPoses.Contains(l) && !tmp.Contains(l))
tmp.Add(l);
});
}
}
for (int i = ; i < ; i++) { // 确保不遗漏到疯狂程度
foreach (var pos in copyPoses) {
var links = LinkPoses(pos);
if (tmp.Intersect(links).Count() > ) {
links.ForEach(l => {
if (copyPoses.Contains(l) && !tmp.Contains(l))
tmp.Add(l);
});
}
}
} PosBlock block = new PosBlock();
block.Poses = tmp;
blocks.Add(block); copyPoses.RemoveAll(p => tmp.Contains(p));
UpdateMeshBlocks(copyPoses, blocks);
}

UpdaeMeshBlocks()

这同 UpdateStepBlocks() 相同,只是为确保不遗漏,多了几遍而已。

整个程序都是建立在集合的基础上的,更新块成为关键,也就不足为奇了。

完整代码下载链接https://github.com/chinax01/x01.Weiqi

最新文章

  1. java compiler level does not match the version of the installed java project facet
  2. [转载]《民航科技》2012年4月专家论坛:程延松《关于中国民航SWIM框架及技术实现探讨》
  3. UNIX/Linux打包,压缩 ,解压:
  4. android布局--Android fill_parent、wrap_content和match_parent的区别
  5. Linq之Linq to Objects
  6. 欧拉回路-Door Man 分类: 图论 POJ 2015-08-06 10:07 4人阅读 评论(0) 收藏
  7. 从实验室搬到宿舍后可以上QQ但打不开网页
  8. 《Python CookBook2》 第一章 文本 - 去字符串两端的空格 &amp;&amp; 合并字符串 &amp;&amp; 将字符串逐字符或者逐词反转
  9. iOS View的Frame和bounds之区别,setbounds使用(深入探究)
  10. 用SQL将查询出来的多列的值拼接成一个字符串【转载】
  11. mui开发app之html5+,5+Runtime,5+sdk,native.js
  12. JavaWeb 后端 &lt;七&gt; 之 mvc3层架构
  13. Hello PyQt5
  14. 阿里云负载均衡SSL证书配置
  15. ASP.NET Core中使用GraphQL - 第六章 使用EF Core作为持久化仓储
  16. python之psutil模块(获取系统性能数据)
  17. WIN10安装时msxml4.0提示2502、2503解决办法
  18. ConcurrentMap与CopyOnWrite容器
  19. 自定义UDF
  20. 《HTTP权威指南》读书笔记:缓存

热门文章

  1. Windows 下noinstall方式安装 mysql-5.7.5-m15-winx64
  2. DX9入门笔记1-D3D初始化
  3. [Web API] Web API 2 深入系列(6) Model绑定(上)
  4. WPF模糊效果(BlurEffect)
  5. 在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效。
  6. authorization与URL授权
  7. 图解DataGridView编辑列
  8. 应用程序启动管理 Winform版
  9. C#怎样保证弹出窗体是唯一并居中显示
  10. Spring工作原理