神経衰弱のプログラミング
Q&A
import tkinter
import random
img = [None] * 27
card = [0] * 26
proc = 0
tmr = 0
sel1 = 0
sel2 = 0
for i in range(26):
card[i] = 0
def draw_card():
cvs.delete("all")
for i in range(26):
if card[i] == 1:
x = (i % 7) * 120 + 60
y = int(i / 7) * 168 + 84
cvs.create_image(x, y, image=img[i])
if card[i] == 0:
x = (i % 7) * 120 + 60
y = int(i / 7) * 168 + 84
cvs.create_image(x, y, image=img[26])
def click(e):
global proc, tmr, sel1, sel2
mx = int(e.x / 120)
my = int(e.y / 168)
if 0 <= mx <= 6 and 0 <= my <= 3:
g = mx + 7 * my
if g >= 26:
return
if card[g] == 0:
if proc == 1:
card[g] = 1
sel1 = g
proc = 2
elif proc == 2:
card[g] = 1
sel2 = g
proc = 3
tmr = 0
def main():
global proc, tmr
tmr += 1
draw_card()
if proc == 0:
proc = 1
if proc == 1:
cvs.create_text(780, 580, text="1枚目捲れ")
if proc == 2:
cvs.create_text(780, 580, text="2枚目剥れ")
if proc == 3:
if img[sel1] == img[sel2]:
card[sel1] = 2
card[sel2] = 2
else:
card[sel1] = 0
card[sel2] = 0
proc = 1
root.after(200, main)
root = tkinter.Tk()
root.title("dd")
root.bind("", click)
root.resizable(False, False)
cvs = tkinter.Canvas(width=960, height=672)
cvs.pack()
img[26] = tkinter.PhotoImage(file="card/0.png")
for i in range(26):
img[i] = tkinter.PhotoImage(file="card/" + str(1 + i % 13) + ".png")
main()
root.mainloop()
神経衰弱を作成しているのですが、60行目で画像ファイルが同じ場合にというプログラムを作りたいのですがなかなか動かないです。なぜめくった2枚の画像ファイルが同じなのにプログラムが実行されないのでしょうか