En guise d'introduction à Python, je vais essayer Développer un «Blackjack» pour les examens de fin d'études des débutants en programmation. Les exigences sont utilisées telles quelles. Il y a des points inconnus, c'est donc bien de le faire ici! J'aimerais que vous commentiez qu'il y a quelque chose comme ça!
Pour apprendre la syntaxe de Python, je me suis référé à ce qui suit.
[Des bases du langage Python du programmeur d'auto-apprentissage à la façon de travailler](https://www.amazon.co.jp/%E7%8B%AC%E5%AD%A6%E3%83%97%E3%83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9E% E3% 83% BC-Python% E8% A8% 80% E8% AA% 9E% E3% 81% AE% E5% 9F% Ba E6% 96% B9% E3% 81% BE% E3% 81% A7-% E3% 82% B3% E3% 83% BC% E3% 83% AA% E3% 83% BC% E3% 83% BB% E3 % 82% A2% E3% 83% AB% E3% 82% BD% E3% 83% 95 / dp / 4822292274 / ref = tmm_hrd_swatch_0? _Encoding = UTF8 & qid = 1588765972 & sr = 8-2)
N École préparatoire - Introduction à l'apprentissage automatique
Je voulais implémenter quelque chose en Python avant l'apprentissage automatique, j'ai donc fait une introduction à Python
Avant le jeu de blackjack, je pensais que j'avais besoin de la fonction du deck Trump, qui est la base du jeu de cartes, donc je vais commencer par là.
Obtenez les informations de la carte en donnant à l'instance générée à partir de la classe Card une marque et un argument numérique.
card.py
#!/usr/bin/env python
# coding: UTF-8
class Card:
"""
Marques et numéros de carte de sortie
Attributes
----------
card_mark : int
Marque de la carte (♠ ︎❤︎ ♦ ︎ ♣ ︎)
card_value : int
Numéros de carte
"""
#marque
MARKS = ("♠︎-", "❤︎-", "♦︎-", "♣️-")
#Nombres
VALUES = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
def __init__(self, card_mark, card_value):
"""
Parameters
----------
card_mark : int
Marque de la carte (♠ ︎❤︎ ♦ ︎ ♣ ︎)
card_value : int
Numéros de carte
"""
self.mark = card_mark
self.value = card_value
#Remplacer et modifier la sortie de l'instance
def __repr__(self):
return self.MARKS[self.mark] + str(self.VALUES[self.value])
Si vous exécutez la classe de carte ci-dessus seule, ce sera comme suit. Le contenu de sortie de l'instance est modifié à l'aide de la méthode repr.
#Créer une instance à partir de la classe Card (marque et numéro comme arguments)
#Puisque le contenu de sortie est modifié par la méthode repr, il est généré comme suit
#Normal →<__main__.Card object at 0x10c949310>
#Ajouter la méthode repr → ♦ ︎-4
# ♦︎-4
card = Card(2, 4)
print(card)
Utilisez la classe Card pour générer une liste aléatoire de 52 cartes par deck.
deck.py
#!/usr/bin/env python
# coding: UTF-8
#Classe de carte
import card
#Mélanger les éléments de la liste
from random import shuffle
class Deck:
"""
Créez 52 cartes Atout (1 Deck)
Attributes
----------
deck_set_no : int
Nombre de ponts
"""
def __init__(self, deck_set_count=1):
"""
Parameters
----------
deck_set_count : int
Nombre de ponts
"""
self.cards = []
for index in range(deck_set_count):
#4 points
for mark in range(len(card.Card.MARKS)):
#Numéros (2 à 13+1 sur 14)
for value in range(len(card.Card.VALUES)):
#Ajouter aux cartes
self.cards.append(card.Card(mark, value))
#Mélangez le jeu
shuffle(self.cards)
def get_card(self, card_num=1):
"""
Obtenir l'élément et le supprimer de la liste
Parameters
----------
card_num : int
Nombre de cartes à obtenir
"""
self.card_list = []
if len(self.cards) == 0:
#Ne rien faire quand il n'y a aucune carte
return
#self.carte de la fin en cartes_Obtenez num minutes et supprimez de la liste
for index in range(card_num):
self.card_list.append(self.cards.pop())
return self.card_list
Lorsque vous exécutez la classe Deck, ce sera comme suit.
#Générer deux decks
deck = Deck(2)
# [♦︎-12, ♠︎-3, ♦︎-13, ❤︎-9, ♦︎-3, ♦︎-8, ♠︎-11, ♦︎-13, ♣︎-9, ♦︎-11,
# ♦︎-12, ♠︎-2, ♠︎-8, ❤︎-10, ♦︎-4, ♦︎-9, ♣︎-10, ♣︎-4, ♦︎-9, ♠︎-6,
# ♠︎-3, ♣︎-12, ♠︎-12, ❤︎-13, ♣︎-11, ♣︎-8, ♦︎-10, ♦︎-5, ♦︎-7, ❤︎-12,
# ♣︎-8, ♦︎-10, ♣︎-10, ♦︎-6, ♠︎-9, ♦︎-5, ❤︎-12, ♠︎-12, ♠︎-10, ♣︎-1,
# ♣︎-3, ❤︎-1, ❤︎-9, ❤︎-3, ❤︎-6, ♠︎-8, ♦︎-1, ♠︎-13, ❤︎-3, ♦︎-2, ♣︎-1,
# ♣︎-12, ♠︎-7, ❤︎-8, ♣︎-5, ♠︎-9, ♣︎-4, ♠︎-10, ❤︎-11, ❤︎-4, ♣︎-11,
# ♠︎-4, ♣︎-7, ❤︎-7, ❤︎-6, ♣︎-3, ♣︎-9, ♦︎-2, ♦︎-11, ❤︎-5, ❤︎-4, ♠︎-13,
# ♠︎-4, ♣︎-13, ♠︎-1, ♦︎-1, ♠︎-2, ♦︎-8, ❤︎-8, ♣︎-5, ♣︎-6, ♠︎-7, ♣︎-7,
# ♠︎-11, ♠︎-6, ♠︎-5, ♦︎-6, ❤︎-5, ♣︎-6, ♣︎-13, ❤︎-7, ♦︎-7, ❤︎-10, ❤︎-11,
# ♠︎-5, ❤︎-2, ❤︎-13, ♦︎-3, ♠︎-1, ❤︎-1, ♦︎-4, ♣︎-2, ❤︎-2, ♣︎-2]
print(deck.cards)
#Nombre de cartes 104
print(len(deck.cards))
#Piochez 5 cartes[♣︎-2, ❤︎-2, ♣︎-2, ♦︎-4, ❤︎-1]
#La carte tirée est supprimée de la liste
print(deck.get_card(5))
Avec cela, le deck de Trump et la fonction de piocher des cartes ont été implémentés!
La prochaine fois, j'aimerais résumer la conservation des données du joueur et du croupier!
Recommended Posts