You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.5 KiB
67 lines
1.5 KiB
from copy import deepcopy
|
|
from level import *
|
|
from global_var import get_value
|
|
maxlevel = 3 # 需要指明最大的level
|
|
|
|
|
|
def search_path():
|
|
pa = []
|
|
cur = get_value('cur')
|
|
for (lev, p) in cur.items():
|
|
for i in p:
|
|
pa.append(i.ImagePath)
|
|
# print(pa)
|
|
return pa
|
|
|
|
|
|
def node(level): # 通过level指定需要的类型
|
|
ui = get_value('ui')
|
|
if level == 0:
|
|
return level0()
|
|
elif level == 1:
|
|
return level1()
|
|
elif level == 2:
|
|
return level2()
|
|
else:
|
|
return level3()
|
|
|
|
|
|
def delete():
|
|
cur = get_value('cur')
|
|
# delete操作
|
|
ui = get_value('ui')
|
|
cur.clear()
|
|
ui.update0()
|
|
ui.update1()
|
|
ui.update2()
|
|
ui.update3()
|
|
ui.show_image()
|
|
|
|
|
|
def merge(level):
|
|
if level == maxlevel:
|
|
return
|
|
cur = get_value('cur')
|
|
upcnts = len(cur[level]) // 3
|
|
delcnts = len(cur[level]) % 3
|
|
while len(cur[level]) != delcnts:
|
|
cur[level].pop()
|
|
if level + 1 <= maxlevel and upcnts > 0:
|
|
create(upcnts, level + 1)
|
|
|
|
|
|
def create(n, level): # create操作
|
|
cur = get_value('cur')
|
|
if level not in cur.keys():
|
|
cur[level] = []
|
|
for i in range(n):
|
|
cur[level].append(node(level))
|
|
ui = get_value('ui')
|
|
ui.update0()
|
|
ui.update1()
|
|
ui.update2()
|
|
ui.update3()
|
|
merge(level)
|
|
ui.show_image()
|
|
# END
|