# 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
-
-
Stop Running Code
-
Show Chart
-
Show Console
-
Codesters How To (opens in a new tab)