# Solve2Mint玩法解析

By [scriptmoney](https://paragraph.com/@scriptmoney) · 2022-08-05

---

ISSAC是 @topology\_gg 在StarkNet上开发的链游，他们开发了一个谜题，共50道题，成功解密的50个地址获得ISSAC alpha测试的白名单。目前名额已满，但解密过程挺有趣，于是写这篇文章介绍下规则。

进入 s2m2 的网站([https://s2m2.netlify.app](https://s2m2.netlify.app))，先连上 StarkNet 的钱包，在后边选择题目，然后在 8x8 的网格画线形成路径，最后点 let's go 发送交易。

![](https://storage.googleapis.com/papyrus_images/1fe9e312401c83c95c94b04c2c42b29d9ad28734bf526e8aadbd648707a8f1c5.png)

所有规则和逻辑都写到了合约里：

[https://github.com/topology-gg/s2m2/blob/main/contracts/s2m2.cairo](https://github.com/topology-gg/s2m2/blob/main/contracts/s2m2.cairo)

规则如下，

1.  路径闭环
    
2.  无重复经过的格子
    
3.  方形点满足所有方形点规则（必须是转角，且不和另一个转角相邻）
    
4.  圆形点满足所有圆形点规则（必须是由直线穿过，且相邻至少有一个转角）
    
5.  路径经过所有的方形和圆形点
    

看懂规则可以自己去尝试了，有点像玩数独，过程挺有趣。

搞不定的可以看看下面第一题的解答过程。

圆形需要直线穿过，以44为例，可能是垂直或水平，不确定或者不合法的用虚线标注。而处于边缘的 3 8 47 61 已经可以确定，用实线标注。

![](https://storage.googleapis.com/papyrus_images/669fb2fe97f4ee594e57dfea4147cbcd6a41194140ff378e58b117d4d9337ad5.png)

圆点相邻至少有一个转角，所以如下图的 50→60→61→62→63 是不合法的。

![](https://storage.googleapis.com/papyrus_images/fb6a25c3a5881180ef4e8fd97652e524fd5ab9e10a4862f5ef110d999272031a.png)

方形不和另一个转角相邻，所以如下图 40→48→49 的虚线是不合法的。

![](https://storage.googleapis.com/papyrus_images/6fb95594225202df14f247e0c628d732868f6f54d0692f20e3393e08d4fb1c39.png)

也就得知方形必须和2格的直线形成直角，对于边缘的方形，如下图，要么是24→32→40→41→42，要么是56→48→40→41→42，所以40→41→42可以确定。

![](https://storage.googleapis.com/papyrus_images/baa0ca601398147517c46f6bd1f6636446a7fbcee5fae68f5214b11fc829d7b3.png)

同理，处于边缘内一环的方形也可以至少确定一条边的路径。如下图22→23不合法，20→21→22是确定的。

![](https://storage.googleapis.com/papyrus_images/4d9cabfd8fd2fd85ea270ea6bee20e3d1ace4708e9c2ff6ad64009f67faf634d.png)

根据无重复经过的格子规则，下图的33→41→49不合法。

![](https://storage.googleapis.com/papyrus_images/ff6df192b3ab0a40aa03d1c20c17ab2385d03319002ac663256e50a2fb84acb4.png)

根据上面的推导，可以把部分路径确定并标注。

![](https://storage.googleapis.com/papyrus_images/84bc6fce07e00b6d1ad2ab25754f819c46b20a623383a6506cc4f2272f726896.png)

根据路径闭环规则，下图中的绿线们是唯一路径，所以也可以确定。

![](https://storage.googleapis.com/papyrus_images/7ddb21225ddcf4274668a4048aadeb63a2107355eca3e2bd4e52244f23214376.png)

接下来不能直接得到结论，可以用假设法。假设44是水平连线，就只考虑下半区，很容易得到以下唯一路径，但这样61就不合法，所以44只能是垂直。

![](https://storage.googleapis.com/papyrus_images/7d5eaf5c7de36ea5cbc1fc7790951db98a96e68e30c5a821aaffd9a79683db06.png)

同理，假设 27→35 是正解，那左上角必然不会形成闭环。所以35→43才是正解，然后就可推导出更多的路径。

![](https://storage.googleapis.com/papyrus_images/8dfd9b2e86527ce0db0db64fbccf80a412a6431810db9256b4a39b8483b066ba.png)

最后部分很容易就能补全

![](https://storage.googleapis.com/papyrus_images/03335dfdfa15e7abcb99996753ae2357921c10e91a566af3ec6f6d74e89c1894.png)

如果路径有错误，合约会进行判断，发送交易的时候会报错，并告诉你错误的格子。

有兴趣的可以玩玩其他题目。

---

*Originally published on [scriptmoney](https://paragraph.com/@scriptmoney/solve2mint)*
