Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (2)

Die Programmierung sollte in Worten ausgedrückt werden

Wenn du ein Othello-Spiel machen willst, brauchst du zuerst ein 8x8-Brett. Insgesamt gibt es 64 Felder.

Um die Position der Quadrate darzustellen, habe ich beschlossen, die Zahlen 1 bis 8 als X in horizontaler Richtung und die Zahlen 1 bis 8 als Y in vertikaler Richtung zu verwenden. Im Allgemeinen scheint es, dass die horizontale Achse von Othello oft durch a bis h dargestellt wird, aber wenn Sie Programmieren studieren, sind Zahlen leichter zu verstehen, also machen Sie es so, dass sowohl horizontal als auch vertikal durch 1 bis 8 dargestellt werden. Es gibt.

Dies ist das einzige Hauptprogramm des Othello-Spiels, das ich gemacht habe, um meine Kinder zu unterrichten. Wie ich im vorherigen Artikel geschrieben habe, sind die Grundlagen des Programms nur Steueranweisungen, bedingte Anweisungen und sich wiederholende Anweisungen. Dieses Othello wird auch hergestellt, indem diese drei voll ausgenutzt werden. Lassen Sie uns das folgende Programm erklären.

Othello Spiel Hauptprogramm

if __name__ == '__main__':

    #Erstellen Sie eine Instanz der Othello-Klasse
    myot = OthelloCls()
    #Board-Anzeige
    myot.ot_display()

    #Für immer wiederholen
    while True:
        #Bestimmen Sie, ob das Spiel beendet ist oder ob es einen Platz gibt, an dem Sie Ihre Hand legen können
        sts = myot.ot_checkendofgame()
        if sts == 1:            #Spiel ist aus
            break
        elif sts < 0:           #Ich kann meine Hand nicht legen
            continue
        #Rufen Sie eine Funktion auf, die anzeigt, wer an der Reihe ist
        myot.ot_yourturn()
        #Geben Sie die X- und Y-Koordinaten ein
        myx = myot.ot_inputXY("X = ")
        myy = myot.ot_inputXY("Y = ")

        #Legen Sie Ihre Hand auf die angegebenen Koordinaten
        myot.ot_place(myx,myy)

Start des Hauptprogramms

Die Deklaration von if __name__ == '__ main __': zeigt an, dass die folgenden Einrückungen das Hauptprogramm von hier sind. Da der Block des Hauptprogramms nach unten eingerückt werden muss, erfolgt der Einzug in 4 Leerzeichen und das Programm wird geschrieben.

Beschreibung des Hauptprogramms

Wenn Sie das Programm zum ersten Mal ausführen, wird ein Bildschirm wie dieser angezeigt, der auf die Tastatureingabe wartet.

スクリーンショット 2020-05-23 22.54.49.png

Die erste Zeile des Programms materialisiert eine Instanz der Othello-Klasse. Es besteht kein Zweifel, dass die Othello-Klasse mit verschiedenen Funktionen ausgestattet ist, die für Othello erforderlich sind. Bitte seien Sie jedoch versichert, dass die Details später beschrieben werden.

Die Tafel von Othello im allerersten Zustand wird auf dem Bildschirm angezeigt. Wenn Sie die Funktion "ot_display ()" aufrufen, wird die Karte in dem Zustand angezeigt, in dem sie aufgerufen wurde.

Das Hauptprogramm beginnt mit einer ewigen Wiederholung des Teils "whilt True:".

Im Othello-Spiel wechseln sich Weiß und Schwarz ab, aber irgendwann kommt es, wenn entweder keine Hand oder beide Hände nicht platziert werden können.

Die einzige Bedingung, um diese ewige Wiederholung zu beenden, ist, wenn Sie entscheiden, dass das Spiel beendet ist. Eine Funktion namens "ot_checkendofgame ()" ist dafür verantwortlich, die nächste Aktion in einer permanenten Iteration zu überprüfen. Der von dieser Funktion zurückgegebene Wert bestimmt die nächste Aktion.

Rückgabewert von der Funktion Bedeutung Nächste Aktion
0 Fahren Sie fort, weil Sie Ihre eigenen Hände legen können Gehen Sie zur X- und Y-Koordinateneingabe, die Sie über die Tastatur eingeben möchten
1 Spiel ist aus Entkomme der ewigen Wiederholung
-1 Ich kann meine eigene Hand nicht legen, also habe ich zur Hand der anderen Partei gewechselt Kehren Sie zum Beginn der ewigen Wiederholung zurück

Wie oben erwähnt, gibt die Funktion "ot_yourturn ()" an, wer an der Reihe ist, wenn der Rückgabewert der Funktion 0 ist, z. B. "Es ist eine Hand von ●!" Oder "Es ist eine Hand von ○!".

Geben Sie als Nächstes eines von 1 bis 8 mit X und eines von 1 bis 8 mit Y ein, welches Quadrat von der Tastatur platziert werden soll. Die Funktion "ot_inputXY (" X = ")" ist eine Funktion, die Tastatureingaben ausführt, die keine anderen Werte als 1 bis 8 akzeptieren, und Tastatureingaben als eine Funktion implementiert, indem X = oder Y = als Parameter angegeben wird. Es gibt. Die Teile von X = 6 und Y = 5 in der obigen Abbildung werden genau von dieser Funktion ausgeführt.

Weisen Sie abschließend die Funktion "ot_place (myx, myy)" an, die über die Tastatur eingegebene X-Koordinatennummer und die Y-Koordinatennummer zum Platzieren des Rahmens zu übergeben.

Ein Othello-Programm kann als Othello-Spiel gespielt werden, indem nur fünf Funktionen aufgerufen werden. Die Programmtypen sind in Bildschirmanzeigesystem, Eingabesystem und Programmlogiksystem unterteilt. Um sich in Zukunft zu einem grafischen Othello-Spiel zu entwickeln, werden der Bildschirmanzeigeteil und das Eingabesystem sowie der Logikteil absichtlich in der Klasse getrennt.

Funktionen zum Erstellen von Othello-Spielen Programmtyp Was machst du
ot_display() Bildschirmanzeige Zeigen Sie die Tafel von Othello an
ot_checkendofgame() Logik Sagt Ihnen, was als nächstes in ewiger Wiederholung zu tun ist
ot_yourturn() Bildschirmanzeige Zeigen Sie, wer an der Reihe ist
ot_inputXY() Tastatureingabe Geben Sie die Koordinaten ein, um den Ort anzugeben, an dem der Rahmen platziert werden soll
ot_place() Logik Platzieren Sie einen Rahmen an den eingegebenen Koordinaten

Python im Hauptprogramm studieren

Es gibt zwei Arten von sich wiederholenden Sätzen

Wie ich im vorherigen Artikel kurz erwähnt habe, gibt es zwei Arten sich wiederholender Sätze. Einer ist ein sich wiederholender Satz, der sich für immer dreht. Der andere ist ein sich wiederholender Satz, in dem die Anzahl der Umdrehungen bekannt ist. In der folgenden Abbildung entgeht bei dem Typ, der sich für immer wiederholt, ein Ereignis, das aus der Wiederholung ausbricht, der Wiederholung. Das andere ist ein sich wiederholendes Muster, bei dem Sie, wenn Sie sich von Anfang an für 10 Bauchmuskeln entscheiden, dies 10 Mal tun und dann beenden. In Python werden permanente Iterationen als "while True:" geschrieben. Der Einrückungsblock unter diesem "while True:" wird für immer wiederholt, es sei denn, ein Ereignis tritt ein. Schreiben Sie in der ewigen Wiederholung "weiter", um zum Anfang zurückzukehren, und schreiben Sie "Pause", um der ewigen Wiederholung zu entkommen. Wenn in der folgenden Abbildung "Snack?" Ja ist, schreiben Sie "break", andernfalls schreiben Sie "continue". Im Hauptprogramm schreibe ich "continue", wenn ich zum Anfang der Wiederholung in der Mitte eines Blocks zurückkehren möchte, der sich für immer wiederholt, aber ich mache mir nicht die Mühe, "continue" zu schreiben, nachdem ich "ot_place ()" aufgerufen habe Da es sich um die letzte Zeile des Wiederholungsblocks handelt, kehrt es beim Zurückkehren von der Funktion automatisch zum Beginn der Wiederholung zurück.

スクリーンショット 2020-05-23 23.37.13.png

Wenn ich diese beiden in Python schreibe, sieht es so aus. Ich werde mehr darüber schreiben, wie man es für das nächste Mal benutzt.

while True:
Studie()
wenn Snack=="Yes":
        break
for index in range(10):
Bauchmuskel()

Beurteilung der Bedingungen

Verwenden Sie "if-Bedingung:", um die Bedingung zu bestimmen. Die Logik, die der Bedingung entspricht, wird im Block mit abgesenktem Einzug beschrieben, und die Logik, die die Bedingung nicht erfüllt, wird durch Verringern des Einzugs unter "else:" oder "elif:" beschrieben. Schauen wir uns das Hauptprogramm früher an. Der Rückgabewert der Funktion ot_checkendofgame () wird in einer Variablen namens sts gespeichert. Die folgende if-Anweisung bestimmt, ob sts 1 ist, und verwendet in diesem Fall brek, um aus der permanenten Schleife auszubrechen. Wenn elif die erste Bedingung nicht erfüllt, bestimmt die nächste Bedingungsanweisung, ob sts kleiner als 0 ist, und wenn die Bedingung erfüllt ist, kehrt continue zum Beginn der permanenten Iteration zurück.

        sts = myot.ot_checkendofgame()
        if sts == 1:            #Spiel ist aus
            break
        elif sts < 0:           #Ich kann meine Hand nicht legen
            continue
Symbol für die Zustandsbeurteilung Wie benutzt man Erläuterung
Gleichheitszeichen== if sts == 1: M. gleich 1
Ungleichheit!= if sts != 1: sts ist nicht gleich 1
Größer> if sts > 1: M. ist größer als 1 (2 oder größer)
Klein< if sts < 1: sts ist kleiner als 1 (kleiner oder gleich 0)
Größere gleiche Anzahl>= if sts >= 1: M. ist 1 oder mehr
Kleineres Problem<= if sts <= 1: M. ist 1 oder weniger

Daher möchte ich beim nächsten Mal kurz die tatsächliche Ausführung des Programms und die in Python verwendeten Variablen erläutern.

<< Ich habe ein Othello erstellt, um Kindern Python3 beizubringen (1) Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (3) >>

Recommended Posts

Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (4)
Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (2)
Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (5)
Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (3)
Ich habe Othello dazu gebracht, Kindern Python3 beizubringen (1)
Ich habe versucht, Othello dazu zu bringen, Kindern Python3 beizubringen (6) Final
Ich habe einen Passwortgenerator erstellt, um Kindern Python3 beizubringen (Bonus) * Vollständig neu erstellt
Ich habe einen Blackjack mit Python gemacht!
Ich habe ein Python-Modul erstellt, um Kommentare zu übersetzen
Ich habe einen Python-Text gemacht
Ich habe eine Python-Bibliothek erstellt, die einen rollierenden Rang hat
Ich habe mit Python einen Blackjack gemacht.
Othello gemacht mit Python (wie GUI)
Ich habe Wordcloud mit Python gemacht.
Ich habe ein Paket erstellt, um Zeitreihen mit Python zu filtern
Ich habe eine Animation gemacht, die Othellos Stein mit POV-Ray zurückgibt
Ich habe einen Line-Bot mit Python gemacht!
Ich habe versucht, Python zu berühren (Installation)
Ich habe meine eigene Python-Bibliothek erstellt
Ich habe mit Python eine Lotterie gemacht.
Othello-Spieleentwicklung mit Python
Ich möchte mit Python debuggen
Ich habe mit Python einen Daemon erstellt
Ich habe eine Bibliothek erstellt, die Konfigurationsdateien mit Python einfach lesen kann
Ich habe versucht, unerfahrenen Programmierern Python beizubringen
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe mit Python einen Zeichenzähler erstellt
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich möchte ein Glas aus Python verwenden
Ich wollte ABC160 mit Python lösen
Ich möchte eine Python-Umgebung erstellen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich habe versucht, ADALINE in Python zu implementieren
Ich wollte ABC159 mit Python lösen
Ich habe versucht, PPO in Python zu implementieren
Ich habe ein Skript erstellt, um Piktogramme anzuzeigen
Ich habe mit Python eine Hex-Map erstellt
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Nachdem ich Python3 studiert hatte, machte ich einen Slackbot
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Was ich süchtig nach Python Autorun war
Ich wollte ABC172 mit Python lösen
Ich habe mit Python einen einfachen Blackjack gemacht
Ich habe mit Python eine Einstellungsdatei erstellt
Ich habe mit Python einen Neuronensimulator erstellt
Was ich getan habe, um Python-Speicher zu speichern
Othello App (iOS App) erstellt mit Python (Kivy)
Ich habe einen Docker-Container erstellt, um JUMAN ++, KNP, Python (für pyKNP) zu verwenden.
[Python] Ich habe einen Dekorateur gemacht, der keinen Nutzen zu haben scheint.
Ich habe ein Tool zum automatischen Durchsuchen mehrerer Websites mit Selenium (Python) erstellt.
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten