Sie haben eine Blutgruppe, richtig? Unabhängig davon, ob es wahr ist oder nicht, wie A-Typ, B-Typ, O-Typ, AB-Typ usw., hat der Typ seine eigenen Eigenschaften, wie "A-Typ, der akribisch ist" und "B-Typ, der egoistisch ist". Bei der Programmierung werden Typen verwendet, um wichtige Unterteilungen wie Blutgruppen vorzunehmen.
Ich habe bisher viel über ** Variablen ** gesprochen, aber ich habe es nicht gewagt, Typen zu erwähnen. Ich erklärte, dass das Array eine Klasse namens list () ist und die Wörterbuchvariablen auch eine Klasse namens dict () sind. Der Datentyp im Programm repräsentiert ebenso wie die Blutgruppe die Art der Daten.
Datentypname | Datentyp | Beschreibung |
---|---|---|
String | str | "Brief"Oder'Brief' |
ganze Zahl | int | +-Numerischer Wert |
Schwimmende Fraktion | float | +-Schwimmende Fraktion |
Imaginäre Zahl | complex | +-Realteil+-Imaginäre Zahl部j |
Authentizität | bool | Richtig oder falsch |
Terminzeit | datetime | Datum (und Uhrzeit |
Liste (Array) | list | Array unabhängig vom Datentyp |
Taple (Referenzsequenz) | tuple | Array unabhängig vom Datentyp |
Set (eindeutiges Array) | set | Blockarray mit eindeutigen und nicht in Ordnung befindlichen Daten |
Wörterbuch (Keymap-Array) | dict | Schlüssel vs. Datenarray |
In Python werden bei Verwendung von Variablen die Typen ohne besondere Berücksichtigung zugewiesen. Dies wird als "dynamisches Tippen" bezeichnet. Wenn Sie beispielsweise "age = 12" schreiben, ändert Python den Typ in int (). Um den zugewiesenen Typ herauszufinden, können Sie Typ (Alter) eingeben, um den Typ herauszufinden, der der Variablen Alter zugewiesen ist. Wie ich letztes Mal geschrieben habe, sind alle Typen Klassen, die die Funktionen enthalten, die zur Behandlung des Datentyps erforderlich sind. Wenn es einem unbeabsichtigten Typ zugewiesen ist, können Sie es explizit mit float () usw. angeben oder den Typ konvertieren.
Erstens ist die Funktion, die Tastatureingaben ausführt. Zeigt die als Argument übergebene Zeichenfolge an und wartet auf Tastatureingaben. Wenn Sie die Eingabetaste leer drücken oder einen anderen Wert als 1 bis 8 eingeben, kehren Sie erneut zur Tastatureingabe zurück. Sobald die richtige Zahl eingegeben wurde, konvertiert int () sie zurück in ** Ganzzahl **. Wichtige Werte für diese Othello-Klasse sind die Nummern 1-8 für X und Y. Selbst wenn es sich um ein grafisches Othello handelt und die Position mit der Maus angeklickt wird, kann es intern in die X- und Y-Koordinaten von 1 bis 8 konvertiert werden, sodass die Funktionen der aktuellen Klasse unverändert verwendet werden können.
#Eingang
def ot_inputXY(self,otstr):
while True:
myXY = input(otstr)
if myXY == "":
continue
if '1' <= myXY <= '8' :
return int(myXY)
Die Funktion "ot_yourturn ()" ist eine Funktion, die nur die Hand von "●" anzeigt. Oder welcher Spieler an der Reihe ist. Was angezeigt wird, ist eine in "~" eingeschlossene Zeichenkette, aber ** "Zeichenkette" ** ist die oben erwähnte Zeichenkettenklasse "str ()", also sogar eine Zeichenkette, die gerade als "aiueo" str geschrieben wurde Die in der Klasse () enthaltenen Funktionen können unverändert verwendet werden.
Das hier beschriebene {} und format ()
bei Verwendung des Zeichenfolgentyps sind sehr gebräuchliche Ausdrücke. Denken Sie also hier daran. {}
Wird ** Ersatzfeld ** genannt und so weiter. Wenn Sie "str (" Aka {} Tana ".format (" sa ")" "ausführen, wird das Innere von {} durch die durch die Funktion format () angegebenen Daten ersetzt. In Python 3.6 oder höher das f-Zeichen Sie können jetzt Variablen als Spaltenoperation direkt in das Ersetzungsfeld einfügen, um die Lesbarkeit zu verbessern.
name = input("Bitte geben Sie Ihren Namen ein=")
print("Ein mutiger Mann, der oft kam{}Ja! !! Ich habe darauf gewartet, dass der Held den Dämonenkönig zerstört!".format(name))
# Python3.Nach 6 ist es bequem wie folgt zu schreiben!
print(f"Ein mutiger Mann, der oft kam{name}Ja! !! Ich habe darauf gewartet, dass der Held den Dämonenkönig zerstört!")
In ot_yourturn ()
in der aktuellen Othello-Klasse wird ● oder ○ angezeigt, da im Ersetzungsfeld die Variable ot_offdef angegeben ist, die die aktuelle Verschiebung speichert.
#Du bist dran
def ot_yourturn(self):
print("{}Es ist deine Hand!".format(self.ot_offdef))
Die Funktion ot_changeturn ()
ist eine Funktion, die den Zug des Angreifers umschaltet.
#Du bist dran
def ot_changeturn(self):
#Bewahren Sie das Stück des Angreifers auf
self.ot_offdef = '●' if self.ot_offdef == '○' else '○'
#Speichert das Gegenstück zum Angreifer
self.ot_search = '●' if self.ot_offdef == '○' else '○'
Das Programm ist als ternärer Operator geschrieben. Es ist fast so, als würde man eine IF-Anweisung mit einem Excel-Makro schreiben, aber die Logik oben und die Logik unten sind genau gleich. Durch Schreiben von "Wert, wenn die Bedingung erfüllt ist, wenn Bedingung andernfalls Wert, wenn die Bedingung nicht erfüllt ist" kann die if-Bedingungsanweisung präzise in einer Zeile gespeichert werden. Der ternäre Operator aktualisiert das Programm je nach Schreibweise. Es wird jedoch empfohlen, es mit Vorsicht zu verwenden, da es eine sehr unlesbare Quelle ist, wenn es zwangsweise verwendet wird. Wenn Sie es schwer zu verstehen finden, können Sie es durch die folgende Quelle ersetzen.
#Du bist dran
def ot_changeturn(self):
#Bewahren Sie das Stück des Angreifers auf
if self.ot_offdef == '○':
self.ot_offdef = '●'
else:
self.ot_offdef = '○'
#Speichert das Gegenstück zum Angreifer
if self.ot_offdef == '○':
self.ot_search = '●'
else:
self.ot_search = '○'
Die Funktion ot_checkendofgame ()
ist ein Programm, das berücksichtigt, ob das Othello-Spiel endet. Informationen zur Operation finden Sie in (2) dieser Artikelserie.
Was wir dabei tun, ist wie folgt.
ot_canplacemypeace ()
, um festzustellen, ob ein Platz für das Stück des Angreifers vorhanden ist.In dieser Funktion ist count (), das als myot.ot_bit.count (●) bezeichnet wird, eine Funktion, die die Anzahl der im Array der list () -Klasse enthaltenen Daten zurückgibt.
#Bestimmen Sie, ob es vorbei ist (ändern Sie den Zug, wenn Sie Ihre Hand einfach nicht legen können)
def ot_checkendofgame(self):
#Es gibt keinen Platz, an dem Sie Ihre eigene Hand legen können, und Sie können die Hand Ihres Gegners nicht legen
if 0 > self.ot_canplacemypeace():
self.ot_changeturn()
if 0 > self.ot_canplacemypeace():
bc = myot.ot_bit.count('●')
wc = myot.ot_bit.count('○')
if ( bc - wc ) > 0:
bws = "● Sieg"
elif ( bc - wc ) < 0:
bws = "○ Sieg"
else:
bws = "zeichnen"
print("{}ist. Danke für deine harte Arbeit!".format(bws))
return 1
else:
print("{}Es gibt keinen Platz, um es auszudrücken. Es wechselt zum Zug des Gegners! !!".format(self.ot_search))
return -1
else:
return 0
Das vorherige "ot_checkendofgame ()" bestimmte, ob das Spiel beendet war, ob es einen Platz gab, an dem Sie Ihre Hand legen konnten, oder wenn nicht, ob es einen Platz gab, an dem Sie die Hand Ihres Gegners legen konnten. Die Funktion "ot_canplacemypeace ()" denkt: "Gibt es einen Ort, an dem ich meine Hand legen kann?"
#Finden Sie heraus, ob es einen Platz gibt, an dem Sie Ihre Hand halten können
def ot_canplacemypeace(self):
for n in range(64):
if self.ot_bit[n] != '・':
continue
for d in self.ot_direction:
if 1 == self.ot_next_onepeace(int(n%8)+1,int(n/8)+1, d):
return 0
#Wenn es keinen Platz gibt, werde ich hierher kommen
return -1
Folgendes machen wir:
Wie ich letztes Mal sagte, wenn Sie ein Stück an der angegebenen Stelle platzieren, müssen Sie beurteilen, ob es ein Ort ist, an dem Sie es platzieren können, und wenn Sie es platzieren können, müssen Sie das Stück des Gegners umdrehen. Und wenn der Ort, an dem Sie es platzieren, ein Ort ist, an dem Sie es nicht an erster Stelle platzieren sollten, müssen Sie diese Tatsache anzeigen.
#Legen Sie Ihre Hand auf das Brett von Othello
def ot_place(self, ot_x, ot_y):
ot_change = False
for d in self.ot_direction:
if 1 == self.ot_next_onepeace(ot_x,ot_y,d):
self.ot_peace(ot_x,ot_y,self.ot_offdef)
self.ot_changepeace(ot_x,ot_y,d)
ot_change = True
#Wenn es keine gültige Richtung gibt
if not ot_change:
print("{}Konnte nicht platziert werden".format(self.ot_offdef))
return -1
#Zeigen Sie den Bildschirm an und wechseln Sie Ihre Hand zum Zug des Gegners
self.ot_display()
self.ot_changeturn()
return 0
Diese Funktion wird aufgerufen, wenn Sie versuchen, einen Frame an einer vorgegebenen Stelle zu platzieren. An der angegebenen Stelle sind X und Y die Koordinaten, die durch die Werte 1 bis 8 angegeben sind. Lassen Sie uns das Programm dieser Funktion erklären.
ot_next_onepeace ()
auf, um zu sehen, ob und wie weit die aktuelle Richtung gespiegelt werden kann. Wenn der Rückgabewert der Funktion 1 ist, zeigt diese Richtung an, dass er umgedreht werden kann.ot_peace ()
mit Ihrer Hand auf, um Ihren Frame an den angegebenen Koordinaten zu platzieren. Die Funktion "ot_peace ()" ist auch eine Funktion, die einen Frame an den angegebenen Koordinaten zurückgibt, wenn das dritte Argument weggelassen wird. Wenn das dritte Argument angegeben wird, wird der Rahmen an den angegebenen Koordinaten durch das angegebene Zeichen ersetzt.ot_changepeace ()
auf, um sie an einen Punkt zu spiegeln, an dem sie gespiegelt werden kann.ot_change
auf True. Wenn Sie nicht alle acht Richtungen umdrehen können, bleibt es falsch.ot_changeturn ()
auf, um den Zug des Angreifers zu ändern.Das nächste Mal werde ich die Funktion "ot_next_onepeace ()" und die Funktion "ot_changepeace ()" erläutern, die möglicherweise am kompliziertesten sind. Diese beiden Funktionen werden als rekursive Funktionen bezeichnet. Dies sind die Funktionen, die Sie selbst aufrufen. Ich möchte sie daher erläutern.
Wir sehen uns wieder! !!
c u
<< Ich habe ein Othello erstellt, um Kindern Python3 beizubringen (4) Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (6) >>
Recommended Posts