编辑已解决
我正在尝试制作2048游戏,游戏分为2个模块。一个有规则,另一个是在tkinter。 我的列表在模块内,其中包含规则。所以我想知道是否还要在我的tkinter网格列表中显示数字。 This is how it looks like now.我成功地填充了数字产生的区域,但我不知道如何显示它们。谢谢你的帮助。
This is what I'm trying to get. (picture edited)
这是创建网格的功能。
def init(n):
base=[2,4]
creation= grid(n, 0) #create grid with value 0
ran1, ran2= base[randrange(0,2)], base[randrange(0,2)]
addrandom(creation,ran1) ##spawn either a 2 or a 4
addrandom(creation,ran2) ##spawn either a 2 or a 4
return creation
结果看起来像这样。
0 2 2 0
0 0 0 0
0 0 0 0
0 0 0 0
Tkinter看起来像这样:
def drawg_grid(g):
can.delete(ALL) #can is the canvas
for i in range(n+1):
can.create_line(x0+c*i, y0,x0+c*i,y0 + n*c,fill="#92877d")
can.create_line(x0, y0+c*i,x0+n*c ,y0+c*i,fill="#92877d")
def square(g):
for i in range(n):
for j in range(n):
x=g[i][j]
if x!=0:
can.create_rectangle(x0 +c*j+2,y0+c*i+2,x0 +c*(j+1)-2,y0+c*(i+1)-2, fill= dico_couleurs_case.get(x), outline= dico_couleurs_case.get(x)) #premade dictionary to get the background color
答案 0 :(得分:1)
如果有人在想,那就是我做的。
def square(g):
for i in range(n):
for j in range(n):
x=g[i][j]
if x!=0:
can.create_rectangle(x0 +c*j+2,y0+c*i+2,x0 +c*(j+1)-2,y0+c*(i+1)-2, fill= dico_couleurs_case.get(x), outline= dico_couleurs_case.get(x))
can.create_text((x0 +c*j+38,y0+c*i+38), text= x, font=("Ubuntu",28,"bold"), fill= dico_couleurs_chiffre.get(x))