欢迎光临散文网 会员登陆 & 注册

赛尔号『修缘试炼·战斗试炼』参考攻略

2022-12-16 17:07 作者:摸鱼的橙汁  | 我要投稿

赛尔号『修缘试炼·战斗试炼』参考攻略

标记限制:一共5行5列,共计25个格子,被划分为5个区域(划分类型一共20种),在每个区域内只有一处标记,5个标记在不同的行与列,并且不会在对角线上相邻(即每两个标记的行数差与列数差不同时为1)。

一共有20种情况,我把每种情况的标记点一一列出,供大家参考。

 


大家可以根据不同的情况一一对照进行解谜。



当然,为了做这个攻略,我写了一段代码帮助我来摸鱼。

比如下面这种情况:

挑选4个区域输入对应坐标,输入两位数字来表示坐标,十位是行数,个位是列数,输入0结束当前区域录入,最后程序会自动寻找该游戏的解。


由于只是一个练手,就没写注释,随便写了写,也没注意什么格式。


Python代码如下:


part=[[],[],[],[],[]]


for i in range(4):

    print('\n第' + str(i+1) + '区域方块:')

    tmp=''

    while tmp!='0':

        tmp=input()

        if tmp!='0':

            part[i].append([int(tmp[0])-1,int(tmp[1])-1])

        else:

            print(part[i])



for i in range(5):

    for j in range(5):

        if [i,j] not in part[0] and [i,j] not in part[1] and [i,j] not in part[2] and [i,j] not in part[3]:

            part[4].append([i,j])

print('\n第5区域方块:')

print(part[4])


print('\n')


def checkRow(r):

    check=0

    for i in r:

        check=check+10**(i[1])

    if check==11111:

        return True

    else:

        return False


def checkPart(r):

    check=[0,0,0,0,0]

    for i in r:

        for j in range(5):

            if i in part[j]:

                check[j]=check[j]+1

                break

    if check==[1,1,1,1,1]:

        return True

    else:

        return False


def checkClose(r):

    for i in range(4):

        for j in range(i+1,5):

            if abs(r[i][0]-r[j][0])==1 and abs(r[i][1]-r[j][1])==1:

                return False

    return True


def check(r):

    return checkRow(r) and checkPart(r) and checkClose(r)


r=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1]]

result=[]

for a in range(5):

    r[0]=[0,a]

    for b in range(5):

        r[1]=[1,b]

        for c in range(5):

            r[2]=[2,c]

            for d in range(5):

                r[3]=[3,d]

                for e in range(5):

                    r[4]=[4,e]

                    if check(r):

                        print(r)

                        for i in range(5):

                            tmp=''

                            for j in range(5):

                                if [i,j] in r:

                                    tmp=tmp+'■'

                                else:

                                    tmp=tmp+'□'

                            print(tmp)



最后祝大家玩得开心,欢迎点赞、评论、转发,听说关注我的人都变帅了。


赛尔号『修缘试炼·战斗试炼』参考攻略的评论 (共 条)

分享到微博请遵守国家法律