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