The Witness 中谜题的 JavaScript 实现
如果您想查看产品,请前往
目录
概述
这个 repo 处理拼图的创建、解决和显示。 核心引擎由8个文件组成:
实用程序.js
这个文件有一堆小工具(日志记录、颜色处理、设置、平台兼容性、声音和动画)
拼图.js
这包含系统模型,它描述了拼图的存储方式。 内部网格包含边缘和单元格,因此视觉上的 2x2 内部是 5x5。 区域是单元格的集合,并在拼图被一条线分割后创建。 区域不包括绘制的线,因此区域是不相交的。 柱子通过从右侧切掉一列来表示,网格上的任何操作都在模运算下简单地完成。 这意味着几乎所有东西都会调用拼图.getCell(x, y) 而不是拼图.grid[x][y],因为x 可能是-5 之类的值,需要“Struts”。 网格中的所有对象都是带有“type”参数的 JSON 对象。 'type=line' 代表单元格周围
1