Heim Backend-Entwicklung Python-Tutorial Erstellen Sie ein einfaches Tic-Tac-Toe-Spiel in Python

Erstellen Sie ein einfaches Tic-Tac-Toe-Spiel in Python

Apr 05, 2017 pm 02:53 PM
python 游戏 简单

In diesem Tutorial zeige ich Ihnen, wie Sie mit Python ein Tic-Tac-Toe-Spiel erstellen. Dazu gehören Funktionen, Listen, if-Anweisungen, while-Schleifen, for-Schleifen, Fehlerbehandlung und mehr.

Zuerst erstellen wir zwei Funktionen. Die erste Funktion druckt die Hintergrundvorlage des Tic-Tac-Toe-Spiels aus:

def print_board():
    for i in range(0,3):
        for j in range(0,3):
            print map[2-i][j],
            if j != 2:
                print "|",
        print ""
Nach dem Login kopieren

Hier verwenden wir zwei for-Schleifen, um eine Listenvariable namens map zu durchlaufen. Diese Variable ist eine zweidimensionale Liste, die Informationen für jeden Standort enthält.

Da ich die Positionen anhand der Zahlen auf dem Tastenfeld vergleichen werde (wie Sie später sehen werden), setzen wir den ersten Wert auf (2-i) und möchten dann "|" verwenden, um unsere Positionen zu dividieren, also nach jeder Position gedruckt wird, drucken wir dafür ein "|". Wir verwenden hier Kommas print map[2-i][j],, um sicherzustellen, dass sie in derselben Zeile gedruckt werden.

Jetzt kann diese Funktion den Hintergrund eines Spiels drucken. Er sieht so aus:

  |   |   
  |   |   
  |   |
Nach dem Login kopieren
X | X |   
O | X | O 
  | O | X
Nach dem Login kopieren
X | X | X 
X | X | X 
X | X | X
Nach dem Login kopieren

Als nächstes erstellen wir eine check_done()-Funktion, die nach jeder Runde prüft, ob das Spiel vorbei ist. Wenn das Spiel vorbei ist, geben wir True zurück und geben eine Nachricht aus.

def check_done():
    for i in range(0,3):
        if map[i][0] == map[i][1] == map[i][2] != " " \
        or map[0][i] == map[1][i] == map[2][i] != " ":
            print turn, "won!!!"
            return True

    if map[0][0] == map[1][1] == map[2][2] != " " \
    or map[0][2] == map[1][1] == map[2][0] != " ":
        print turn, "won!!!"
        return True

    if " " not in map[0] and " " not in map[1] and " " not in map[2]:
        print "Draw"
        return True

    return False
Nach dem Login kopieren

Zuerst prüfen wir, ob es drei Zeilen in horizontaler und vertikaler Richtung gibt, die gleich und nicht leer sind (damit er drei aufeinanderfolgende leere Zeilen nicht als geeignet betrachtet). Zweitens überprüfen wir die diagonalen Zeilen auf die gleiche Weise.

Wenn eine dieser 8 Zeilen die Bedingungen erfüllt, wird das Spiel beendet und „Gewonnen!!!“ zurückgegeben. Achten Sie gleichzeitig auf die Variable True um festzustellen, welche Seite gerade Schach spielt, und um sie schließlich anzuzeigen. Die ausgegebene Meldung lautet „X hat gewonnen!!“ oder „O hat gewonnen!!“. turn

Als nächstes beurteilt diese Funktion, dass, wenn keine Position leer ist, niemand das Spiel gewinnen kann (früher beurteilt), dann wird ein Unentschieden ausgedruckt und zurückgegeben

. True

Wenn keine der beiden oben genannten Situationen vorliegt, ist das Spiel noch nicht vorbei und Sie kehren zu

zurück. False

OK, jetzt haben wir zwei Funktionen. Beginnen wir mit unserem eigentlichen Programm. Erstellen Sie zunächst drei Variablen:

turn = "X"
map = [[" "," "," "],
       [" "," "," "],
       [" "," "," "]]
done = False
Nach dem Login kopieren
Ich habe Ihnen bereits erklärt, was diese drei Variablen bedeuten. Wenn Sie es vergessen haben, schauen Sie unten nach:

  • Wende: Wer soll gehen


  • Karte: Die Hintergrundkarte des Spiels


  • erledigt: Ist das Spiel vorbei?

Als nächstes schreiben Sie so:

while done != True:
    print_board()

    print turn, "'s turn"
    print

    moved = False
    while moved != True:
Nach dem Login kopieren
Es gibt eine While-Schleife im Inneren, bis done wahr ist, geben wir aus, wer an der Reihe ist.

Erstellen Sie dann eine Variable mit dem Namen

, um zu überprüfen, ob sich der Spieler bewegt hat. Wenn nicht, starten Sie die nächste Schleife. moved

Als nächstes drucken wir aus, wie der Player laufen soll:

print "Please select position by typing in a number between 1 and 9, see below for which number that is which position..."
print "7|8|9"
print "4|5|6"
print "1|2|3"
print
Nach dem Login kopieren
Weiter:

try:
    pos = input("Select: ")
    if pos <=9 and pos >=1:
Nach dem Login kopieren
Wir möchten, dass der Spieler eine Zahl eingibt, und prüfen dann, ob diese zwischen 1 und 9 liegt. Gleichzeitig müssen wir eine Fehlerbehandlung hinzufügen. Wenn der Spieler beispielsweise „Hallo“ eingibt, kann das Programm nicht einfach beendet werden .

Jetzt müssen wir prüfen, ob er diesen Schritt tun kann:

Y = pos/3
X = pos%3
if X != 0:
    X -=1
else:
    X = 2
    Y -=1
Nach dem Login kopieren
Haha, haltet die Augen offen. Wir ermitteln dann den Wert von X und Y und prüfen dann, ob die Position, die er platzieren möchte, leer ist. Als nächstes erkläre ich euch, wie X und Y funktionieren >

    Position 1: Y = 1/3 = 0, X = 1%3 = 1; Position 2: Y = 2/3 = 0, X = 2%3 = 2; Position 3: Y = 3/3 = 1, X = 3%3 = 0
  • ……

  • Sie können unten rechnen, und ich komme gleich zu dem Schluss (Verdammt, die Standardvorlage von Hexo zeigt keine Tabellen an. Als ich sie auf mou bearbeitet habe, war sie viel hübscher als die untenstehende!):
    < Tabelle align="center">< thead> YX x=0 x=1 x=2

    y=2 7 8 9 y=1 4 5 6 y=0 1 2 3

      aha,这个位置和我们键入的是一样的!

    print "7|8|9"
    print "4|5|6"
    print "1|2|3"
    Nach dem Login kopieren

      现在我们完成大部分工作了,但是还有几行代码:

    map[Y][X] = turn
    moved = True
    done = check_done()
    
    if done == False:
        if turn == "X":
            turn = "O"
        else:
            turn = "X"
    
    except:
        print "You need to add a numeric value"
    Nach dem Login kopieren

      嗯,我们给moved变量复制为True,并检查是否结束了,木有结束的话变换角色换下一个人走。

      OK,差不多结束了,假如你只是想Ctrl+C 和 Ctrl+V的话,下面是全部的代码,希望你学到了点什么,( ^_^ )/~~拜拜。

    def print_board():
        for i in range(0,3):
            for j in range(0,3):
                print map[2-i][j],
                if j != 2:
                    print "|",
            print ""
    
    def check_done():
        for i in range(0,3):
            if map[i][0] == map[i][1] == map[i][2] != " " \
            or map[0][i] == map[1][i] == map[2][i] != " ":
                print turn, "won!!!"
                return True
    
        if map[0][0] == map[1][1] == map[2][2] != " " \
        or map[0][2] == map[1][1] == map[2][0] != " ":
            print turn, "won!!!"
            return True
    
        if " " not in map[0] and " " not in map[1] and " " not in map[2]:
            print "Draw"
            return True
    
        return False
    
    turn = "X"
    map = [[" "," "," "],
           [" "," "," "],
           [" "," "," "]]
    done = False
    
    while done != True:
        print_board()
    
        print turn, "&#39;s turn"
        print
    
        moved = False
        while moved != True:
            print "Please select position by typing in a number between 1 and 9, see below for which number that is which position..."
            print "7|8|9"
            print "4|5|6"
            print "1|2|3"
            print
    
            try:
                pos = input("Select: ")
                if pos <=9 and pos >=1:
                    Y = pos/3
                    X = pos%3
                    if X != 0:
                        X -=1
                    else:
                         X = 2
                         Y -=1
    
                    if map[Y][X] == " ":
                        map[Y][X] = turn
                        moved = True
                        done = check_done()
    
                        if done == False:
                            if turn == "X":
                                turn = "O"
                            else:
                                turn = "X"
    
            except:
                print "You need to add a numeric value"
    Nach dem Login kopieren

      原文出处: Vswe

    Das obige ist der detaillierte Inhalt vonErstellen Sie ein einfaches Tic-Tac-Toe-Spiel in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Muss MySQL bezahlen? Muss MySQL bezahlen? Apr 08, 2025 pm 05:36 PM

MySQL hat eine kostenlose Community -Version und eine kostenpflichtige Enterprise -Version. Die Community -Version kann kostenlos verwendet und geändert werden, die Unterstützung ist jedoch begrenzt und für Anwendungen mit geringen Stabilitätsanforderungen und starken technischen Funktionen geeignet. Die Enterprise Edition bietet umfassende kommerzielle Unterstützung für Anwendungen, die eine stabile, zuverlässige Hochleistungsdatenbank erfordern und bereit sind, Unterstützung zu bezahlen. Zu den Faktoren, die bei der Auswahl einer Version berücksichtigt werden, gehören Kritikalität, Budgetierung und technische Fähigkeiten von Anwendungen. Es gibt keine perfekte Option, nur die am besten geeignete Option, und Sie müssen die spezifische Situation sorgfältig auswählen.

So verwenden Sie MySQL nach der Installation So verwenden Sie MySQL nach der Installation Apr 08, 2025 am 11:48 AM

Der Artikel führt den Betrieb der MySQL -Datenbank vor. Zunächst müssen Sie einen MySQL -Client wie MySQLworkBench oder Befehlszeilen -Client installieren. 1. Verwenden Sie den Befehl mySQL-uroot-P, um eine Verbindung zum Server herzustellen und sich mit dem Stammkonto-Passwort anzumelden. 2. Verwenden Sie die Erstellung von Createdatabase, um eine Datenbank zu erstellen, und verwenden Sie eine Datenbank aus. 3.. Verwenden Sie CreateTable, um eine Tabelle zu erstellen, Felder und Datentypen zu definieren. 4. Verwenden Sie InsertInto, um Daten einzulegen, Daten abzufragen, Daten nach Aktualisierung zu aktualisieren und Daten nach Löschen zu löschen. Nur indem Sie diese Schritte beherrschen, lernen, mit gemeinsamen Problemen umzugehen und die Datenbankleistung zu optimieren, können Sie MySQL effizient verwenden.

MySQL kann nach dem Herunterladen nicht installiert werden MySQL kann nach dem Herunterladen nicht installiert werden Apr 08, 2025 am 11:24 AM

Die Hauptgründe für den Fehler bei MySQL -Installationsfehlern sind: 1. Erlaubnisprobleme, Sie müssen als Administrator ausgeführt oder den Sudo -Befehl verwenden. 2. Die Abhängigkeiten fehlen, und Sie müssen relevante Entwicklungspakete installieren. 3. Portkonflikte müssen Sie das Programm schließen, das Port 3306 einnimmt, oder die Konfigurationsdatei ändern. 4. Das Installationspaket ist beschädigt. Sie müssen die Integrität herunterladen und überprüfen. 5. Die Umgebungsvariable ist falsch konfiguriert und die Umgebungsvariablen müssen korrekt entsprechend dem Betriebssystem konfiguriert werden. Lösen Sie diese Probleme und überprüfen Sie jeden Schritt sorgfältig, um MySQL erfolgreich zu installieren.

Die MySQL -Download -Datei ist beschädigt und kann nicht installiert werden. Reparaturlösung Die MySQL -Download -Datei ist beschädigt und kann nicht installiert werden. Reparaturlösung Apr 08, 2025 am 11:21 AM

Die MySQL -Download -Datei ist beschädigt. Was soll ich tun? Wenn Sie MySQL herunterladen, können Sie die Korruption der Datei begegnen. Es ist heutzutage wirklich nicht einfach! In diesem Artikel wird darüber gesprochen, wie dieses Problem gelöst werden kann, damit jeder Umwege vermeiden kann. Nach dem Lesen können Sie nicht nur das beschädigte MySQL -Installationspaket reparieren, sondern auch ein tieferes Verständnis des Download- und Installationsprozesses haben, um zu vermeiden, dass Sie in Zukunft stecken bleiben. Lassen Sie uns zunächst darüber sprechen, warum das Herunterladen von Dateien beschädigt wird. Dafür gibt es viele Gründe. Netzwerkprobleme sind der Schuldige. Unterbrechung des Download -Prozesses und der Instabilität im Netzwerk kann zu einer Korruption von Dateien führen. Es gibt auch das Problem mit der Download -Quelle selbst. Die Serverdatei selbst ist gebrochen und natürlich auch unterbrochen, wenn Sie sie herunterladen. Darüber hinaus kann das übermäßige "leidenschaftliche" Scannen einer Antiviren -Software auch zu einer Beschädigung von Dateien führen. Diagnoseproblem: Stellen Sie fest, ob die Datei wirklich beschädigt ist

Lösungen für den Dienst, der nach der MySQL -Installation nicht gestartet werden kann Lösungen für den Dienst, der nach der MySQL -Installation nicht gestartet werden kann Apr 08, 2025 am 11:18 AM

MySQL hat sich geweigert, anzufangen? Nicht in Panik, lass es uns ausprobieren! Viele Freunde stellten fest, dass der Service nach der Installation von MySQL nicht begonnen werden konnte, und sie waren so ängstlich! Mach dir keine Sorgen, dieser Artikel wird dich dazu bringen, ruhig damit umzugehen und den Mastermind dahinter herauszufinden! Nachdem Sie es gelesen haben, können Sie dieses Problem nicht nur lösen, sondern auch Ihr Verständnis von MySQL -Diensten und Ihren Ideen zur Fehlerbehebungsproblemen verbessern und zu einem leistungsstärkeren Datenbankadministrator werden! Der MySQL -Dienst startete nicht und es gibt viele Gründe, von einfachen Konfigurationsfehlern bis hin zu komplexen Systemproblemen. Beginnen wir mit den häufigsten Aspekten. Grundkenntnisse: Eine kurze Beschreibung des Service -Startup -Prozesses MySQL Service Startup. Einfach ausgedrückt, lädt das Betriebssystem MySQL-bezogene Dateien und startet dann den MySQL-Daemon. Dies beinhaltet die Konfiguration

So optimieren Sie die Datenbankleistung nach der MySQL -Installation So optimieren Sie die Datenbankleistung nach der MySQL -Installation Apr 08, 2025 am 11:36 AM

Die MySQL -Leistungsoptimierung muss von drei Aspekten beginnen: Installationskonfiguration, Indexierung und Abfrageoptimierung, Überwachung und Abstimmung. 1. Nach der Installation müssen Sie die my.cnf -Datei entsprechend der Serverkonfiguration anpassen, z. 2. Erstellen Sie einen geeigneten Index, um übermäßige Indizes zu vermeiden und Abfrageanweisungen zu optimieren, z. B. den Befehl Erklärung zur Analyse des Ausführungsplans; 3. Verwenden Sie das eigene Überwachungstool von MySQL (ShowProcessList, Showstatus), um die Datenbankgesundheit zu überwachen und die Datenbank regelmäßig zu sichern und zu organisieren. Nur durch kontinuierliche Optimierung dieser Schritte kann die Leistung der MySQL -Datenbank verbessert werden.

Braucht MySQL das Internet? Braucht MySQL das Internet? Apr 08, 2025 pm 02:18 PM

MySQL kann ohne Netzwerkverbindungen für die grundlegende Datenspeicherung und -verwaltung ausgeführt werden. Für die Interaktion mit anderen Systemen, Remotezugriff oder Verwendung erweiterte Funktionen wie Replikation und Clustering ist jedoch eine Netzwerkverbindung erforderlich. Darüber hinaus sind Sicherheitsmaßnahmen (wie Firewalls), Leistungsoptimierung (Wählen Sie die richtige Netzwerkverbindung) und die Datensicherung für die Verbindung zum Internet von entscheidender Bedeutung.

Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Apr 08, 2025 pm 06:03 PM

Die MySQL-Datenbankleistung Optimierungshandbuch In ressourcenintensiven Anwendungen spielt die MySQL-Datenbank eine entscheidende Rolle und ist für die Verwaltung massiver Transaktionen verantwortlich. Mit der Erweiterung der Anwendung werden jedoch die Datenbankleistung Engpässe häufig zu einer Einschränkung. In diesem Artikel werden eine Reihe effektiver Strategien zur Leistungsoptimierung von MySQL -Leistung untersucht, um sicherzustellen, dass Ihre Anwendung unter hohen Lasten effizient und reaktionsschnell bleibt. Wir werden tatsächliche Fälle kombinieren, um eingehende Schlüsseltechnologien wie Indexierung, Abfrageoptimierung, Datenbankdesign und Caching zu erklären. 1. Das Design der Datenbankarchitektur und die optimierte Datenbankarchitektur sind der Eckpfeiler der MySQL -Leistungsoptimierung. Hier sind einige Kernprinzipien: Die Auswahl des richtigen Datentyps und die Auswahl des kleinsten Datentyps, der den Anforderungen entspricht, kann nicht nur Speicherplatz speichern, sondern auch die Datenverarbeitungsgeschwindigkeit verbessern.

See all articles