Interactive programming - Memory - Mini-project


SUBMITTED BY: Guest

DATE: May 7, 2014, 7 p.m.

FORMAT: Python

SIZE: 1.6 kB

HITS: 1710

  1. import simplegui
  2. import random
  3. cards = []
  4. state = [False] * 16
  5. # flip control
  6. fc = [None] * 2
  7. flap = 0
  8. turn = 0
  9. def new_game():
  10. global cards, state, turn, flap
  11. cards = range(8) + range(8)
  12. random.shuffle(cards)
  13. state = [False] * 16
  14. turn = 0
  15. label.set_text("Turns = " + str(turn))
  16. flap = 0
  17. def mouseclick(pos):
  18. global state, flap, turn
  19. card = pos[0] / 50
  20. if not state[card]:
  21. state[card] = True
  22. if flap == 0:
  23. fc[0] = card
  24. flap = 1
  25. elif flap == 1:
  26. fc[1] = card
  27. flap = 2
  28. turn += 1
  29. label.set_text("Turns = " + str(turn))
  30. elif flap == 2:
  31. if cards[fc[0]] != cards[fc[1]]:
  32. state[fc[0]] = False
  33. state[fc[1]] = False
  34. flap = 1
  35. fc[0] = card
  36. def draw(canvas):
  37. x = 15
  38. y = 65
  39. for i, c in enumerate(cards):
  40. if state[i]:
  41. canvas.draw_text(str(c), (x, y), 40, 'White', 'serif')
  42. else:
  43. canvas.draw_polygon(((x - 16,0),(x - 16, 100), (x + 34, 100), (x + 34, 0)),1, "", "Green")
  44. x += 50
  45. frame = simplegui.create_frame("Memory", 800, 100)
  46. frame.add_button("Reset", new_game)
  47. label = frame.add_label("Turns = 0")
  48. frame.set_mouseclick_handler(mouseclick)
  49. frame.set_draw_handler(draw)
  50. new_game()
  51. frame.start()

comments powered by Disqus