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()
