Afficher aléatoirement les cartes à jouer dans la scène Pythonista +

Cette fois, j'ai créé un processus pour afficher les cartes à jouer dans la scène Pythonista.

Les grandes lignes du programme sont les suivantes. ・ Piochez 5 cartes au hasard parmi 53 cartes ・ Touchez l'écran du smartphone pour redessiner la carte

Comment créer une carte à jouer

Tout d'abord, créez un jeu de 53 cartes (13 cartes illustrées + joker). Créez une chaîne de caractères sous la forme de marque + numéro et stockez-la dans le tableau de liste Trump.

Mark utilise "Clubs", "Coeurs", "Pique" et "Diamants" pour correspondre à l'image de la carte Pythonista.

Exemple d'implémentation

class TrumpGame:
	def make_card_list(self):	
 Liste de # marques
		symbol_list = ['Clubs', 'Hearts', 'Spades', 'Diamonds']
 # Liste de cartes
		card_list = ['Joker']

 Combiner # marque et numéro
		for symbol in symbol_list:
			for number in range(1, 14):
 # 11 et plus et 1 sont remplacés
				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 ou moins tel quel
					card = symbol + str(number)

 #Ajouter une carte à la liste
				card_list.append(card)
			
		return card_list

Ensuite, créez la carte en tant que fonction de lecture aléatoire.

Vous pouvez facilement créer une lecture aléatoire en utilisant random.shuffle ().

◆ Exemple de mise en œuvre

	def shuffle(self, card_list):
 #Mélanger cartes
		random.shuffle(card_list)
		return card_list

Articles connexes >> [Python] Exemple d'utilisation de random.shuffle ()

Comment afficher les cartes à jouer à l'écran

Appelez la classe Trump pour créer une liste de cartes. Ensuite, prenez 5 pièces.

class MyScene (Scene):
	def setup(self):
 Créez une liste de cartes en appelant la classe #TrumpGame ()
		self.tg = TrumpGame()
		self.card_list = self.tg.make_card_list()
		self.card_list = self.tg.shuffle(self.card_list)
		self.draw_cards = []

 # 5 ramassage
		for i in range(0, 5):
			self.draw_cards.append(
				self.card_list.pop(0)
			)

Vient ensuite la création du processus de dessin. Passez la chaîne de la carte avec SpriteNode () et dessinez-la à l'écran avec 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)

Vous trouverez ci-dessous le code qui résume la création de Trump et le traitement de la scène.

from scene import *
import random

class MyScene (Scene):
	def setup(self):
 # Paramètres d'arrière-plan
		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 processus de dessin de feuilles
	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)
			)	
			
 #Le processus d'échange de cartes
	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):	
 Liste de # marques
		symbol_list = ['Clubs', 'Hearts', 'Spades', 'Diamonds']
 # Liste de cartes
		card_list = ['Joker']

 Combiner # marque et numéro
		for symbol in symbol_list:
			for number in range(1, 14):
 # 11 et plus et 1 sont remplacés
				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 ou moins tel quel
					card = symbol + str(number)

 #Ajouter une carte à la liste
					card_list.append(card)
			
		return card_list
	def shuffle(self, card_list):
 #Mélanger cartes
		random.shuffle(card_list)
		return card_list

if __name__ == '__main__':
	run(MyScene(), show_fps=False)

◆ Exemple d'exécution

Il s'agit du processus de création d'une carte à jouer avec la scène Pythonista +.

Pythonista est également résumé dans le blog. Résumé de l'utilisation de Pythonista

J'ai fait un cours de poker avec Pythonista sur mon blog. Cours de création de poker de scène Pythonista +

Recommended Posts

Afficher aléatoirement les cartes à jouer dans la scène Pythonista +
Battez ui.View.flex dans Pythonista3
Afficher les horaires du système de localisation des bus Morioka dans Pythonista