Als Einführung in Python werde ich versuchen, einen "Blackjack" für Abschlussprüfungen von Programmieranfängern zu entwickeln. Die Anforderungen werden unverändert verwendet. Es gibt einige unbekannte Punkte, also ist es gut, dies hier zu tun! Ich möchte, dass Sie kommentieren, dass es so etwas gibt!
Um die Syntax von Python zu lernen, habe ich mich auf Folgendes bezogen.
[Programmierer zum Selbststudium von den Grundlagen der Python-Sprache bis zur Arbeitsweise](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% 9C% AC% E3% 81% 8B% E3% 82% 89% E4% BB% 95% E4% BA% 8B% E3% 81% AE% E3% 82% 84% E3% 82% 8A% 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 Vorbereitungsschule - Einführung in das maschinelle Lernen
Ich wollte vor dem maschinellen Lernen etwas in Python implementieren, also habe ich eine Einführung in Python gemacht
Vor dem Blackjack-Spiel dachte ich, ich brauche die Funktion des Trump-Decks, das die Grundlage des Kartenspiels bildet, also werde ich von dort aus beginnen.
Rufen Sie die Karteninformationen ab, indem Sie der aus der Kartenklasse generierten Instanz eine Markierung und ein Zahlenargument geben.
card.py
#!/usr/bin/env python
# coding: UTF-8
class Card:
"""
Markierungen und Nummern der Ausgabekarte
Attributes
----------
card_mark : int
Kartenmarkierung (♠ ♠ ♦ ︎ ♣ ︎)
card_value : int
Kartennummern
"""
#Kennzeichen
MARKS = ("♠︎-", "❤︎-", "♦︎-", "♣️-")
#Zahlen
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
Kartenmarkierung (♠ ♠ ♦ ︎ ♣ ︎)
card_value : int
Kartennummern
"""
self.mark = card_mark
self.value = card_value
#Überschreiben und ändern Sie die Ausgabe der Instanz
def __repr__(self):
return self.MARKS[self.mark] + str(self.VALUES[self.value])
Wenn Sie die obige Kartenklasse alleine ausführen, ist dies wie folgt. Der Ausgabeinhalt der Instanz wird mit der Repr-Methode geändert.
#Erstellen Sie eine Instanz aus der Kartenklasse (markieren und nummerieren Sie als Argumente)
#Da der Ausgabeinhalt durch die Repr-Methode geändert wird, wird er wie folgt ausgegeben
#Normal →<__main__.Card object at 0x10c949310>
#Repr-Methode hinzufügen → ♦ ︎-4
# ♦︎-4
card = Card(2, 4)
print(card)
Verwenden Sie die Kartenklasse, um eine zufällige Liste mit 52 Karten pro Deck zu erstellen.
deck.py
#!/usr/bin/env python
# coding: UTF-8
#Kartenklasse
import card
#Shuffle-Listenelemente
from random import shuffle
class Deck:
"""
Erstelle 52 Trumpfkarten (1 Deck)
Attributes
----------
deck_set_no : int
Anzahl der Decks
"""
def __init__(self, deck_set_count=1):
"""
Parameters
----------
deck_set_count : int
Anzahl der Decks
"""
self.cards = []
for index in range(deck_set_count):
#4 Punkte
for mark in range(len(card.Card.MARKS)):
#Zahlen (2 bis 13+1 von 14)
for value in range(len(card.Card.VALUES)):
#Zu Karten hinzufügen
self.cards.append(card.Card(mark, value))
#Mische das Deck
shuffle(self.cards)
def get_card(self, card_num=1):
"""
Holen Sie sich das Element und entfernen Sie es aus der Liste
Parameters
----------
card_num : int
Anzahl der zu erhaltenden Karten
"""
self.card_list = []
if len(self.cards) == 0:
#Tun Sie nichts, wenn 0 Karten vorhanden sind
return
#self.Karte vom Ende in Karten_Holen Sie sich num Minuten und löschen Sie aus der Liste
for index in range(card_num):
self.card_list.append(self.cards.pop())
return self.card_list
Wenn Sie die Deck-Klasse ausführen, ist dies wie folgt.
#Generiere zwei 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)
#Anzahl der Karten 104
print(len(deck.cards))
#Ziehe 5 Karten[♣︎-2, ❤︎-2, ♣︎-2, ♦︎-4, ❤︎-1]
#Die gezogene Karte wird aus der Liste entfernt
print(deck.get_card(5))
Damit sind das Deck von Trump und die Funktion des Kartenziehens implementiert!
Nächstes Mal möchte ich die Datenaufbewahrung von Player und Dealer zusammenfassen!
Recommended Posts