# global variable deck = ["dracula","candycorn","astronaut2", "ufo","spaceship","cow","toucan","monkey"] first_card = -1 second_card = -1 first_sprite = 0 second_sprite = 0 deck = deck*2 # To suffle the card in random position def shuffle_deck(): for i in range(len(deck) - 1): temp = deck[i] rand = random.randint(i + 1, len(deck) - 1) deck[i] = deck[rand] deck[rand] = temp # to create the placeholder grid for our sprites def create_card(): for i in range(4): for j in range(4): # sprite = codesters.Rectangle(x, y, width, height, "color") card = codesters.Rectangle(-185 + (j*120), 145-(i*110), 80, 100, "crimson") card.id = j +(i*4) card.event_click(card_click) # print(f"""Value of x: {-185 + (j*120)} # Value of y: {145-(i*110)}""") def card_click(card): global first_card, second_card, first_sprite, second_sprite if first_card == -1: first_card = card.id # flip card by creating sprite with corresponding deck element first_sprite = codesters.Sprite(deck[first_card], card.get_x(), card.get_y()) first_sprite.set_size(.3) elif second_card == -1 and card.id != first_card: second_card = card.id # flip card by creating sprite with corresponding deck element second_sprite = codesters.Sprite(deck[second_card], card.get_x(), card.get_y()) second_sprite.set_size(.3) stage.wait(2) if deck[first_card] is not deck[second_card]: # if not ,delete the sprite stage.remove_sprite(first_sprite) stage.remove_sprite(second_sprite) # Return the flip Variable to starting value(-1) first_card = -1 second_card = -1 shuffle_deck() create_card()
  • Run Code
  • Show Console
  • Codesters How To (opens in a new tab)