賽爾號(hào)『修緣試煉·戰(zhàn)斗試煉』參考攻略
賽爾號(hào)『修緣試煉·戰(zhàn)斗試煉』參考攻略

標(biāo)記限制:一共5行5列,共計(jì)25個(gè)格子,被劃分為5個(gè)區(qū)域(劃分類(lèi)型一共20種),在每個(gè)區(qū)域內(nèi)只有一處標(biāo)記,5個(gè)標(biāo)記在不同的行與列,并且不會(huì)在對(duì)角線上相鄰(即每?jī)蓚€(gè)標(biāo)記的行數(shù)差與列數(shù)差不同時(shí)為1)。

一共有20種情況,我把每種情況的標(biāo)記點(diǎn)一一列出,供大家參考。
?




















大家可以根據(jù)不同的情況一一對(duì)照進(jìn)行解謎。
當(dāng)然,為了做這個(gè)攻略,我寫(xiě)了一段代碼幫助我來(lái)摸魚(yú)。
比如下面這種情況:

挑選4個(gè)區(qū)域輸入對(duì)應(yīng)坐標(biāo),輸入兩位數(shù)字來(lái)表示坐標(biāo),十位是行數(shù),個(gè)位是列數(shù),輸入0結(jié)束當(dāng)前區(qū)域錄入,最后程序會(huì)自動(dòng)尋找該游戲的解。

由于只是一個(gè)練手,就沒(méi)寫(xiě)注釋?zhuān)S便寫(xiě)了寫(xiě),也沒(méi)注意什么格式。
Python代碼如下:
part=[[],[],[],[],[]]
for i in range(4):
? ? print('\n第' + str(i+1) + '區(qū)域方塊:')
? ? 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區(qū)域方塊:')
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)
最后祝大家玩得開(kāi)心,歡迎點(diǎn)贊、評(píng)論、轉(zhuǎn)發(fā),聽(tīng)說(shuō)關(guān)注我的人都變帥了。
