Python-《原神》荒海雷立方机关破解二
Posted 梦之海岛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-《原神》荒海雷立方机关破解二相关的知识,希望对你有一定的参考价值。
文章目录
前言
- 因为之前已经写过一篇文章介绍过了《原神》雷立方机关破解的文章,算法思路大同小异,就不介绍算法思路了。
- 在输入机关方向的时候得注意看每个机关的方向,机关在不亮的时候比较难发现机关的方向
一、问题
机关的位置
标记一下5个机关,方便理解
经过测试,击打机关会造成
至少两个
机关发生顺时针旋转(包括击打的机关)
击打的机关 | 顺时针旋转的机关 |
---|---|
pos1 | pos1 pos3 |
pos2 | pos1 pos2 pos3 |
pos3 | pos1 pos3 pos5 |
pos4 | pos3 pos4 pos5 |
pos5 | pos3 pos5 |
当5个机关的方向一致的时候就会解开,设朝向我们的方向依次为
a、b、c、d
二、代码
需要注意打的时候别打到其他的机关,否则就得重新用代码算一次了
例子一
例子二
# 功能:原神,荒海雷立法机关破解
def Move1(lis_now, direction):
'''移动机关pos1,将会让pos1、pos3顺时针旋转'''
lis_now[0] = direction[(direction.index(lis_now[0]) + 1) % len(direction)] # 移动pos1
lis_now[2] = direction[(direction.index(lis_now[2]) + 1) % len(direction)] # 移动pos3
return lis_now
def Move2(lis_now, direction):
'''移动机关pos2,将会让pos1、pos2、pos3顺时针旋转'''
lis_now[0] = direction[(direction.index(lis_now[0]) + 1) % len(direction)] # 移动pos1
lis_now[1] = direction[(direction.index(lis_now[1]) + 1) % len(direction)] # 移动pos2
lis_now[2] = direction[(direction.index(lis_now[2]) + 1) % len(direction)] # 移动pos3
return lis_now
def Move3(lis_now, dircetion):
'''移动机关pos3,将会让pos1、pos3、pos5顺时针旋转'''
lis_now[0] = direction[(direction.index(lis_now[0]) + 1) % len(direction)] # 移动pos1
lis_now[2] = direction[(direction.index(lis_now[2]) + 1) % len(direction)] # 移动pos3
lis_now[4] = direction[(direction.index(lis_now[4]) + 1) % len(direction)] # 移动pos5
return lis_now
def Move4(lis_now, direction):
'''移动机关pos4,将会让pos3、pos4、pos5顺时针旋转'''
lis_now[2] = direction[(direction.index(lis_now[2]) + 1) % len(direction)] # 移动pos3
lis_now[3] = direction[(direction.index(lis_now[3]) + 1) % len(direction)] # 移动pos4
lis_now[4] = direction[(direction.index(lis_now[4]) + 1) % len(direction)] # 移动pos5
return lis_now
def Move5(lis_now, direction):
'''移动机关pos5,将会让pos3、pos5顺时针旋转'''
lis_now[2] = direction[(direction.index(lis_now[2]) + 1) % len(direction)] # 移动pos3
lis_now[4] = direction[(direction.index(lis_now[4]) + 1) % len(direction)] # 移动pos5
return lis_now
if __name__ == "__main__": # 主函数
lis_now = [] # 机关当前的方向
direction = ["a", "b", "c", "d"] # 机关的方向标记,a为正确的方向
answer = [0, 0, 0, 0, 0] # 正确的答案
result = ["a", "a", "a", "a","a"]
# print(direction[(dirction.index("d") + 1) % len(dirction)]) #测试
for i in range(5): # 输入
lis_now.append(input(f"机关posi + 1当前的方向:"))
for i in range(4): # 循环1
answer = [0, 0, 0, 0, 0] # 重置
Move1(lis_now, direction) # 触发pos1
answer[0] = (answer[0] + 1) % 4 # 记录pos1击打的次数
if lis_now == result: # 找到答案时
print(answer)
exit
for j in range(4): # 循环2
Move2(lis_now, direction) # 触发pos2
answer[1] = (answer[1] + 1) % 4 # 记录pos2击打的次数
if lis_now == result: # 找到答案时
print(answer)
exit
for k in range(4): # 循环3
Move3(lis_now, direction) # 触发pos3
answer[2] = (answer[2] + 1) % 4 # 记录pos3击打的次数
if lis_now == result: # 找到答案时
print(answer)
exit
for g in range(4): # 循环4
Move4(lis_now, direction) # 触发pos4
answer[3] = (answer[3] + 1) % 4 # 记录pos4击打的次数
if lis_now == result: # 找到答案时
print(answer)
exit
for l in range(4): # 循环5
Move5(lis_now, direction) # 触发pos5
answer[4] = (answer[4] + 1) % 4 # 记录pos5击打的次数
if lis_now == result: # 找到答案时
print(answer)
exit
以上是关于Python-《原神》荒海雷立方机关破解二的主要内容,如果未能解决你的问题,请参考以下文章