05-08
扫一扫立即进入手机端
太极迷阵是一款非常好玩的闯关游戏,玩家通过解题进行通关,其中游戏中的第99关许多小伙伴不知道怎么过,接下来小编就给大家分享一下通关攻略。
过这一关其实有许多方法,接下来小编给大家分享两种方法:
1、玩家以阴为0阳为1的话,点击一次太极图实际上是在连线上的点上加1,没连就加0,那么0+0=0,0+1=1,1+0=1,1+1=0,这其实就是按位异或运算,把初始条件从记为列向量t0,按顺序把每一个连线位置记成一个24*24的矩阵M,这个矩阵的每一列都是前一列进行一次位移得到的,在MATLAB里面很容易可以用circshift函数得到,把全零列记为0,那么有t0+MX=0,很显然MX=t0那么,对增广矩阵A=[M t0]做高斯消元,不过加法不用+而用位异或操作即xor函数,写个script两层循环运行几次就出来了,最后M变成单位阵,t0变成对应操作的操作次数,如果按列分块矩阵乘法就像内积,MX也就是M的列向量按X里的对应操作次数进行组合;
2、python3,求解带输出一共36行,求一次黑99用时2秒左右
代码:
init=input('初始场景:')
op=input('黑线设置:')
n=len(init)
assert n>0 and len(op)==n
tonum=lambda s:eval('0b%s'%s)
tobin=lambda i:bin(i)[2:].rjust(n,'0')
rev_target=(1<
paths=[tonum(op[i:]+op[:i]) for i in range(n)]
start=tonum(init)
track={start:(-1,start)}
layer=[start]
solved=False
while layer:
next_layer=[]
for prev in layer:
for i in range(track[prev][0]+1,n):
next=prev^paths[i]
if next in track:
continue
next_layer.append(next)
track[next]=(i,prev)
layer=next_layer
if 0 in track or rev_target in track:
solved=True
break
if solved:
ptr=(rev_target in track) and rev_target
res=[]
while ptr!=start:
node=track[ptr]
res.append(node)
ptr=node[1]
for i in res[::-1]:
print(tobin(i[1]),i[0])
else:
print('无解')
用法:
按逆时针编号输入初始状态(黑白对应01或者10均可)与黑线(有线为1,空位为0),确保两个输入长度相同。
以上就是本期为大家分享的太极迷阵99关怎么过的相关资讯了,感谢大家持续关注软吧。
相关游戏
太极迷阵最新版
安卓版
益智休闲 | 12.21MB