leaf=[]
leaf.append([1,8])
leaf.append([5])
leaf.append([6,4,7])
leaf.append([9])
leaf.append([3,2])
leaf.append([6,10,2])
max=[]
min=[]
count=0
def childset_max(counter,*arg):
global max
if len(arg)==3:
if arg[0] > arg[1]:
if arg[0] > arg[2]:
max.insert(counter,arg[0])
leaf[counter]=[max[counter]]
else:
max.insert(counter,arg[2])
leaf[counter]=[max[counter]]
else:
if arg[1] > arg[2]:
max.insert(counter,arg[1])
leaf[counter] = [max[counter]]
else:
max.insert(counter,arg[2])
leaf[counter] = [max[counter]]
elif len(arg)==2:
if arg[0]>arg[1]:
max.insert(counter,arg[0])
leaf[counter] = [max[counter]]
else:
max.insert(counter,arg[1])
leaf[counter] = [max[counter]]
else:
max.insert(counter,arg[0])
leaf[counter] = [max[counter]]
return max
def childset_min(counter,*arg):
global min
if len(arg)==3:
if arg[0] < arg[1]:
if arg[0] < arg[2]:
min.insert(counter,arg[0])
leaf[counter]=[min[counter]]
else:
min.insert(counter,arg[2])
leaf[counter]=[min[counter]]
else:
if arg[1] < arg[2]:
min.insert(counter,arg[1])
leaf[counter] = [min[counter]]
else:
min.insert(counter,arg[2])
leaf[counter] = [min[counter]]
elif len(arg)==2:
if arg[0]<arg[1]:
min.insert(counter,arg[0])
leaf[counter] = [min[counter]]
else:
min.insert(counter,arg[1])
leaf[counter] = [min[counter]]
else:
min.insert(counter,arg[0])
leaf[counter] = [min[counter]]
return min
def min_move():
count=0
while (count<6):
if len(leaf[count])==6:
childset_min(count, leaf[count][0], leaf[count][1], leaf[count] [2],leaf[count][3],leaf[count][4],leaf[count][5])
elif len(leaf[count])==5:
childset_min(count, leaf[count][0], leaf[count][1], leaf[count] [2],leaf[count][3],leaf[count][4])
elif len(leaf[count])==4:
childset_min(count, leaf[count][0], leaf[count][1], leaf[count] [2],leaf[count][3])
elif len(leaf[count])==3:
childset_min(count, leaf[count][0],leaf[count][1],leaf[count][2])
elif len(leaf[count])==2:
childset_min(count, leaf[count][0],leaf[count][1])
elif len(leaf[count])==1:
childset_min(count, leaf[count][0])
count=count+1
return min
def max_move():
count=0
while (count<6):
if len(leaf[count])==6:
childset_max(count, leaf[count][0], leaf[count][1], leaf[count] [2],leaf[count][3],leaf[count][4],leaf[count][5])
elif len(leaf[count])==5:
childset_max(count, leaf[count][0], leaf[count][1], leaf[count][2],leaf[count][3],leaf[count][4])
elif len(leaf[count])==4:
childset_max(count, leaf[count][0], leaf[count][1], leaf[count][2],leaf[count][3])
elif len(leaf[count])==3:
childset_max(count, leaf[count][0], leaf[count][1], leaf[count][2])
elif len(leaf[count])==2:
childset_max(count, leaf[count][0], leaf[count][1])
elif len(leaf[count])==1:
childset_max(count, leaf[count][0])
count=count+1
return max
max_move()
leaf=[]
leaf.insert(0,[max[0],max[1],max[2]])
leaf.insert(1,[max[3],max[4],max[5]])
min_move()
print(leaf[0][2])
childset_min(0,leaf[0][0],leaf[0][1],leaf[0][2])
childset_min(1,leaf[1][0],leaf[1][1],leaf[1][2])
leaf=[]
leaf.insert(0,[min[0],min[1]])
childset_max(0,leaf[0][0],leaf[0][1])
print(leaf)
代码可以优化,我正在这样做的过程中,一些打印只是为了检查一些事情,所以不要介意他们,但在min\u移动调用下面的叶.插入,我得到的错误列表超出范围,但当手动完成时,如下面的函数调用所示,它工作得很好,为什么我得到错误。代码实际上是一个minmax算法
目前没有回答
相关问题 更多 >
编程相关推荐