import simplegui
import random
cards = []
state = [False] * 16
# flip control
fc = [None] * 2
flap = 0
turn = 0
def new_game():
global cards, state, turn, flap
cards = range(8) + range(8)
random.shuffle(cards)
state = [False] * 16
turn = 0
label.set_text("Turns = " + str(turn))
flap = 0
def mouseclick(pos):
global state, flap, turn
card = pos[0] / 50
if not state[card]:
state[card] = True
if flap == 0:
fc[0] = card
flap = 1
elif flap == 1:
fc[1] = card
flap = 2
turn += 1
label.set_text("Turns = " + str(turn))
elif flap == 2:
if cards[fc[0]] != cards[fc[1]]:
state[fc[0]] = False
state[fc[1]] = False
flap = 1
fc[0] = card
def draw(canvas):
x = 15
y = 65
for i, c in enumerate(cards):
if state[i]:
canvas.draw_text(str(c), (x, y), 40, 'White', 'serif')
else:
canvas.draw_polygon(((x - 16,0),(x - 16, 100), (x + 34, 100), (x + 34, 0)),1, "", "Green")
x += 50
frame = simplegui.create_frame("Memory", 800, 100)
frame.add_button("Reset", new_game)
label = frame.add_label("Turns = 0")
frame.set_mouseclick_handler(mouseclick)
frame.set_draw_handler(draw)
new_game()
frame.start()