私は、Conwayのゲームを楽しむためにPythonを使って人生のゲームを作ろうとしてきましたが、tkinterに問題がありました。基本的には、すべてのイメージの後でキャンバスを更新しようとしていましたが、アップデートの間にそれを見るのに十分長く待つことができません。ここで(ええ、それはかなり悪いですし、それのいくつかは単なる無用ですが、私と一緒に負担してみてください)私のコードです:私は(サイドノートこの問題を解決するにはどうすればよいTkinterキャンバスを更新する
import random
from Tkinter import *
world = []
master = Tk()
w = Canvas(master, width=1000, height=750)
w.pack()
def find_adj(a, b):
#yeah, this is probably the single worst part of my code.
#when declaring a class like this I do (x,y) instead of (y,x)
adjs = 0
if world[b][a - 1] == 1:
adjs += 1
if world[b][a + 1] == 1:
adjs += 1
if world[b - 1][a] == 1:
adjs += 1
if b > len(world):
if world[b + 1][a] == 1:
adjs += 1
return adjs
def select(num1, num2):
if find_adj(num1, num2) <= 1 or find_adj(num1, num2,) == 4:
world[num2][num1] = 0
else:
world[num2][num1] = 1
for n in range(0, 10):
world.append([])
for m in range(0, 10):
world[n].append(random.randint(0, 1))
if world[n][m]==1:
w.create_rectangle(n*10, m * 10, 10 * (n + 1), 10 * (m + 1),
fill="black")
w.pack()#do not know what this is doing down here, I have no idea where to put it
print(world[0])
for o in range(0, 9):
print("hello")
#w.create_rectangle(20,25,100,100, fill="black")
for y in (0, len(world) - 1):
for x in range(0, len(world[y]) - 1):
select(x, y)
if world[y][x]==1:
w = w.update_idletasks
w.create_rectangle(y*10,x*10,10*(y+1), 10*(x+1), fill = "black")
print(world)
mainloop()
:あなたは私がしようとしていると思われる場合私がまだやっていないことをやっていることや、自分のコードが正気な人が正しいことをしようとするのはあまりにも多くのことであり、ちょうどそれを下ろすのではなく "子供を諦める"質問)
このスケールでもっと複雑なものを試す前に、基本的なプログラムから始めておくことをお勧めします。 – SneakyTurtle
は 'python canvas'についてさらに詳しい文書を読む必要があります – dsgdfg