This time, I created a process to display playing cards in the scene of Pythonista.
The outline of the program is as follows. ・ Randomly draw 5 playing cards from 53 cards ・ Touch the smartphone screen to redraw the card
First, create a playing card set of 53 cards (13 picture cards + joker). Create a character string in the form of mark + number and store it in the array of playing cards.
Mark uses'Clubs','Hearts','Spades', and'Diamonds' to match the Pythonista card image.
class TrumpGame: def make_card_list(self): List of # marks symbol_list = ['Clubs', 'Hearts', 'Spades', 'Diamonds'] #Card list card_list = ['Joker'] Combine #marks and numbers for symbol in symbol_list: for number in range(1, 14): # 11 and above and 1 are replaced if number == 1: card = symbol + 'A' elif number == 11: card = symbol + 'J' elif number == 12: card = symbol + 'Q' elif number == 13: card = symbol + 'K' else: # 10 or less as it is card = symbol + str(number) #Add card to list card_list.append(card) return card_list
Next, create the card as a function for shuffling.
You can easily create a shuffle using random.shuffle ().
◆ Implementation example
def shuffle(self, card_list): #Shuffle cards random.shuffle(card_list) return card_list
Related articles >> [Python] Example of using random.shuffle ()
Call the card class to create a card list. Then pick up 5 pieces.
class MyScene (Scene): def setup(self): Create a card list by calling the #TrumpGame () class self.tg = TrumpGame() self.card_list = self.tg.make_card_list() self.card_list = self.tg.shuffle(self.card_list) self.draw_cards = [] # 5 pickups for i in range(0, 5): self.draw_cards.append( self.card_list.pop(0) )
Next is the creation of the drawing process. Pass the card string with SpriteNode () and draw it on the screen with add_child ().
self.items = []
for i,card in enumerate(self.draw_cards):
item = SpriteNode('card:' + card)
item.anchor_point = (0.5, 0)
item.position = (80 + i * 50, 350)
self.add_child(item)
self.items.append(item)
Below is the code that summarizes the card creation and scene processing.
from scene import *
import random
class MyScene (Scene):
def setup(self):
#Background settings
self.background_color = '#004f82'
ground = Node(parent=self)
self.tg = TrumpGame()
self.make_draw_cards()
self.items = []
for i,card in enumerate(self.draw_cards):
item = SpriteNode('card:' + card)
item.anchor_point = (0.5, 0)
item.position = (80 + i * 50, 350)
self.add_child(item)
self.items.append(item)
def touch_began(self, touch):
self.change_draw_cards()
# 5 sheets drawing process
def make_draw_cards(self):
self.card_list = self.tg.make_card_list()
self.card_list = self.tg.shuffle(self.card_list)
self.draw_cards = []
for i in range(0, 5):
self.draw_cards.append(
self.card_list.pop(0)
)
#The process of exchanging cards
def change_draw_cards(self):
self.make_draw_cards()
for i,card in enumerate(self.draw_cards):
self.items[i].texture = Texture('card:' + card)
class TrumpGame:
def make_card_list(self):
List of # marks
symbol_list = ['Clubs', 'Hearts', 'Spades', 'Diamonds']
#Card list
card_list = ['Joker']
Combine #marks and numbers
for symbol in symbol_list:
for number in range(1, 14):
# 11 and above and 1 are replaced
if number == 1:
card = symbol + 'A'
elif number == 11:
card = symbol + 'J'
elif number == 12:
card = symbol + 'Q'
elif number == 13:
card = symbol + 'K'
else:
# 10 or less as it is
card = symbol + str(number)
#Add card to list
card_list.append(card)
return card_list
def shuffle(self, card_list):
#Shuffle cards
random.shuffle(card_list)
return card_list
if __name__ == '__main__':
run(MyScene(), show_fps=False)
◆ Execution example

This is the process of creating playing cards with Pythonista + scene.
Pythonista is also summarized in the blog. Summary of how to use Pythonista
I made a poker making course with Pythonista on my blog. Pythonista + scene poker creation course