Hallo und herzlich willkommen.
Ich möchte eine Lösung anbieten für die Tic Tac Toe Challenge.
Denken Sie daran, es gibt viele Lösungen für ein gegebenes Problem.
Dies wird nur meine Lösung sein.
Wenn Ihre Lösung anders ist solange Sie gute
Programmierpraxis befolgen und verwenden die c Programmiersprache richtig, dann
ist das in Ordnung.
Ich biete nur meine Lösung an.
Ich bin sicher, dass es verbessert werden kann.
Also lasst uns anfangen.
Ich werde eine neue erstellen Projekt heißt es natürlich Tic-Tac-Toe, und
wir werden es tun versuche es zu modulieren.
Ich habe versucht, es so aufzubrechen, wie ich es getan habe in der Beschreibung der Vorlesung.
Ich werde eine erstellen nur ein paar module oder ich sollte
ein paar funktionen sagen.
Hoffentlich wird das so sein Okay und arbeite gut für dich.
Ich benutze Kamelhülle für alle meine Namen Konventionen genau das, was ich gewohnt bin.
Wir könnten uns sogar trennen Dies auch in mehrere Quelldateien,
wenn wir wollten.
Also haben wir unsere Haupt.
Lassen Sie uns diesen Druck loswerden.
Ich werde einschließen ein zusätzliches Include.
Dies wird mir grundsätzlich erlauben Machen Sie ein paar Clearings unseres Systems und ein
paar nette Dinge, erlauben Sie Ich denke auch, ich entferne einen Saibling.
Also zusätzlich zu diesen 2 Bibliotheken, lassen Sie uns conio einschließen. h.
Und was ich machen will und ich möchte dieses Problem angreifen.
Ich möchte versuchen zu modulieren so viel ich kann.
Ich erwähnte, dass ich gehe um ein eindimensionales
Array zu verwenden, ein zweidimensionales Array könnte sogar besser funktionieren.
Aber ich werde implementieren Dies unter
Verwendung eines eindimensionalen Arrays, das unser Spiel darstellt Board, unser Tic-Tac-Toe-Board.
Ich werde das schaffen als globale Variable.
Ich verwende eine globale Variable hier, weil
ich das Konzept von nicht demonstriert habe Weitergabe von Daten als Referenz in c.
Ich will dich nicht verwirren.
Ich müsste nicht global verwenden Daten hier und
ich könnte die Daten an Funktionen übergeben, aber ich würde müssen Pass by Reference verwenden.
Ich würde herumreichen müssen Hinweise, und wir haben noch
nichts davon besprochen.
Also werde ich globale Daten verwenden.
Verzeihen Sie mir, merken Sie sich, dass globale Daten sind
normalerweise keine gute Sache, aber weil wir es wieder versuchen Lernen demonstrieren, Eroberung teilen und wir
versuchen zu demonstrieren Wie man Funktionen nutzt, muss ich globale Daten verwenden, weil
wir habe noch nicht über Hinweise gesprochen.
Also meine globalen Daten hier, die ich gehe zu verwenden ist mein Quadrat,
das mein Gitter darstellt, mein Tic-Tac-Toe-Brett.
Dies wird eine Single sein Maßfläche von 10
Elementen hauptsächlich, weil ich Ich möchte das 0-Element nicht verwenden.
Ich werde dieses Array verwenden, um Wähle Zahlen, um das Spiel zu spielen.
Es wird auch zulassen mich meine Koordinaten zu haben.
Ich werde das initialisieren mit nur den Werten 1 bis 9.
Und das wird ein Zeichenarray, weil ich x
und o einfügen muss.
Wir haben nicht über Charakter gesprochen Arrays noch, aber dies wird mir erlauben,
einzelne Zeichen zu setzen.
Es ist genau wie das Array-Konzept von Ints außer es enthält Zeichen.
Charaktere, denk dran, haben einfache Anführungszeichen um sie herum.
Also eine 2 3 9 die, 0 da das o Ich werde nur überspringen,
ich werde nicht einmal verwenden, weil ich die benutzen will.
Das macht das Programmieren etwas einfacher.
Ich kann den Wert verwenden, den der Benutzer wird als Index, als gültiger Index eingegeben.
Ich werde auch müssen Erstelle 2 globale Variablen zur Auswahl
in der Spielrunde.
Die Wahl wird also das sein, was sie wollen Eingabe über die Tastatur, je nach
Ort entweder eins bis neun sie wollen ihr x oder o platzieren.
Spieler wird einfach Stellen Sie dar, wer
an der Reihe ist, Spieler eins oder Spieler 2.
Ich brauche keine anderen globalen Daten.
Ich brauche nur meine Funktion Erklärungen hier.
Ich werde anfangen mit dem Erstellen von 3 Funktionen.
Also werde ich 3 haben Funktionsdeklarationen.
Ich werde einen haben für die Überprüfung auf einen Gewinn.
Es werden keine Daten benötigt.
Es wird ein int zurückgeben.
Ich werde eine haben, die das nicht tut Geben Sie alle Daten
zurück, die nur die Karte mit den richtigen Zeichen anzeigen.
Es werden auch keine Daten benötigt.
Und ich werde auch eine haben Funktion, die nur die Platine markiert.
Dies übernimmt die Benutzereingabe.
Und je nachdem, was sie eingegeben haben, Es wird ein x oder o an der
richtigen Stelle im Array platzieren und dann angezeigt dieses Array mit Anzeigetafel.
Also hier werden wir nur sagen Mark Board und das wird tatsächlich eine
Markierung mit einem x oder o nehmen.
Also kann ich das wiederverwenden.
Ich kann das wiederverwenden für Spieler eins oder Spieler 2.
3 Funktionsdeklarationen, damit ich kann Platziere meine Funktionen irgendwo im Programm,
ich habe sie oben deklariert.
Und Sie werden feststellen, dass die 2 davon Funktionen geben keine Daten
zurück und nur eine nimmt einen Parameter.
Lassen Sie uns diese Funktionen implementieren bevor wir das Gameplay implementieren.
Also lasst uns zuerst Check für Win implementieren.
Diese Funktion wird im Grunde genommen Arbeiten Sie dort, wo das Board überprüft wird, um festzustellen,
ob es einen Gewinn gibt.
Also wird es enthalten viele if-Aussagen.
Ich könnte mich wahrscheinlich verbessern dieser Code ziemlich viel.
Aber ich werde einige Kommentare abgeben hier drin, weil wir immer
Kommentare oben in unserer Funktion haben sollten.
Diese sind ziemlich vereinfacht.
Wir sollten den Funktionsnamen haben.
Das sagt im Grunde das Die Funktion gibt
einen Spielstatus von eins zurück, wenn das Spiel ist vorbei, sag dir, ob du gewonnen hast,
ein Ergebnis von negativ, wenn die Spiel ist im Gange und 0, wenn das Spiel vorbei
ist und es ein Unentschieden war.
Also diese Funktion prüfen auf man gibt ein int zurück.
Also werde ich gehen voraus und definieren Sie dies.
Und das alles wird tun Es wird auf das
Array schauen und sehen, ob es irgendwelche Flecken gibt drin, wenn 3x übereinstimmt.
Es gibt also viel andere if-Anweisungen.
Woher wissen wir also, ob ein Spieler einer ist?
Nun, wir wissen, ob es ein Spieler ist eine, wenn sie entweder in einer Zeilendiagonale oder
in einer Spalte übereinstimmen.
Also müssen wir jeden überprüfen eine dieser Situationen.
Und wir kennen die Zeilen in der Spalten basierend auf dem Array.
Also, wenn mein Quadrat eins gleich ist zu Quadrat 2
und Quadrat 2 ist gleich Quadrat 3, das heißt wir habe ein Match in unserer ersten Reihe.
Also werde ich auch Erstellen Sie hier einen Rückgabewert.
Oben werde ich nur sagen Rückgabewert, initialisiere diesen auf 0.
Wir werden dies initialisieren für Spielende auf 0.
Und wenn wir ein Match haben In der ersten Reihe werde
ich eine zurückgeben, das Spiel ist vorbei.
Wir müssen dann eine Serie haben von anderen anderen wenns übereinstimmen und eigentlich
möchte ich nicht zurückkehren Ich möchte meinen Rückgabewert festlegen.
Weil wir doch zurückkehren könnten macht es schwieriger, dem Programm zu folgen.
Ansonsten werden wir Überprüfen Sie alle anderen Zeilen.
Also werde ich kopieren und einfügen etwas Code hier drin,
weil es viel redundanten Code ist.
Das einzige was das ist Interessant ist, wenn wir ein Unentschieden haben.
Also lassen Sie mich alle in setzen sonst wenns für Gewinner.
Und dann gehe ich auch verschiedene Werte zurückgeben.
Anstatt ein paar andere zu haben Wenn ja, könnte ich kaufmännisches Und haben, aber
das ist noch schwerer zu lesen.
Also, wenn wir ein Match haben in der ersten Reihe.
Und stellen wir sicher, dass unsere Einrückung ist korrekt.
Wenn wir ein Match in unserer zweiten Reihe haben, das ist es, was der zweite tut.
Wenn wir ein Match in unserer dritten Reihe haben, return one füge ein paar neue Zeilen hinzu, um die
Lesbarkeit zu verbessern, brauche keine Klammern weil sie einzelne Aussagen sind.
In Zeile 37 sieht es so aus Wir passen eins, 4 und 7 zusammen.
Das sieht also aus wie ein diagonale Übereinstimmung, geben Sie eine zurück.
Vierzig, wir passen 2 5 und 8 zusammen.
Das sieht aus wie ein Match der Mitte runter gehen, so die zweite Spalte.
3 6 können Sie die sehen auch andere Spiele.
Wir müssen grundsätzlich alle Spiele fangen für Zeilen, Spalten und Diagonalen.
Und das haben wir mit allen gemacht Diese Anweisungen suchen im Array.
Nun das eine, was uns sagt, ob wir Wir haben kein Match oder wir haben ein Unentschieden. Wir müssen alle
vergleichen und Stellen Sie im Grunde nur sicher, dass es sich nicht um die
Nummern handelt, die initialisiert wurden.
Also, wenn wir unser Array-Quadrat haben und es enthält keine 1 2 3 1 2 3 4 5
6 8 oder 9 für eine der Werte, das heißt, wir haben ein Unentschieden, weil sie eine
0 oder ein x enthalten.
Also können wir noch einen schreiben Wenn
das im Grunde bedeutet, dass es ein Unentschieden ist und wir den Rückgabewert festlegen können bis 0, Rückgabewert gleich 0.
Und wieder ist dies nur im Grunde Überprüfen Sie dies zuletzt, wenn
die Zahlen gleich sind wie sie initialisiert wurden.
Wenn sie alle unterschiedlich sind, dann Das heißt, wir können 0 zurückgeben.
Lassen Sie uns das aufstellen.
Ansonsten, wenn wir keine haben Unentschieden und wir haben keinen Gewinner, das heißt,
wir sind noch nicht fertig.
Eine abschließende else-Aussage kann also nur sagen Der Rückgabewert entspricht einem negativen Wert.
Denn denken Sie daran, die Funktion ist Die Rückgabe
der negativen für das laufende Spiel ist beendet und 0 für Spiel ohne Ergebnis.
Und dann das Letzte, was ich tun möchte Ich möchte den Rückgabewert zurückgeben.
Also hier gehe ich einfach hin Sagen Sie return, return value.
Und das wird die Funktion vervollständigen.
Und was fällt dir wann auf? Wir machen das,
wir teilen und erobern.
Alles worauf wir uns konzentrieren Jetzt wird auf dem Brett überprüft, ob es
einen Gewinn gibt.
Wir würden klein arbeiten Brocken einfach so und wir
würden ständig testen.
Dies ermöglicht es uns, uns auf unsere zu konzentrieren Design und ermöglicht es uns auch, unsere Fehler
einfacher zu reduzieren oder zu isolieren.
Jetzt, wo wir mit dem fertig sind Spielbrett, wir wollen
weitermachen und das Anzeigetafel implementieren.
Die Anzeigetafel ist gerade werde die Tafel zeigen.
Das alles muss also wirklich getan werden Zeichnen Sie das Array in einem bestimmten Format.
Also werden wir eine schreiben Funktion namens Anzeigetafel.
Es werden keine Daten zurückgegeben, Es werden keine Parameter benötigt.
Der Grund ist eine Funktionsnummer Eine davon ist,
dass wir das Brett viele Male zeichnen müssen und es ist einfach besser, weil
es eine bestimmte Aufgabe erledigt.
Jetzt wird dieser nur noch haben eine Reihe von printf-Funktionen darin.
Und es wird haben eine Reihe von Formatierungen.
Also werde ich es kopieren und einfügen.
Das Einzigartige hier ist Ich räume jedes Mal den Bildschirm.
Aber wenn Sie System und sagen Windows und Sie sagen Cls, das wird
den Bildschirm löschen.
Es macht es nur sauberer.
Wir werden dann einfach mache ein paar printfs.
Wir werden den Titel des Spiels ausdrucken. Wir werden die Spieler 1 und 0 ausdrucken.
Und dann gehen wir um die Tafel auszudrucken.
Das Board wird schön sein formatiert mit einigen parallelen Balken
und dann werden wir die ausdrucken Werte aller Werte im Array.
Und wenn der Wert x oder ist 0, es wird angezeigt.
Wenn dies nicht der Fall ist, wird a angezeigt Nummer, damit wir diese Nummer verwenden
können, um unsere Option zum Zeichnen auszuwählen, und das ist Das ist alles, was diese Funktion tut.
Jetzt, wo wir fertig sind Wenn wir die
Karte anzeigen, möchten wir nun unsere letzte Funktion erstellen das markiert die Tafel.
Das Mark Board wird also gesetzt das Array mit einem bestimmten
Wert, und es wird eingegeben eine Markierung in einem x oder einem o.
Also wird es einen Charakter brauchen.
Was dies tun wird, ist Es wird
eine Reihe anderer if-Anweisungen geben.
Also hier in unserer Markentafel sind wir
Ich werde im Grunde einige Kommentare geben wollen und sagen, dass dies wird das
Board mit dem richtigen Zeichen x oder o setzen an der richtigen Stelle im Array.
Hoffentlich macht das Sinn.
Wie Sie den Code I sehen Ich muss meine Kommentare beenden.
Ich möchte es schön formatieren hier sind es also 2 Zeilen.
Und das alles wird reichen
wird überprüft, was der Benutzer eingegeben hat.
Denken Sie also daran, wir haben 2 globale Daten Werte für das, was der Benutzer eingegeben hat.
Wir haben auch einen Wert für den aktuellen Spieler.
Die Wahl wird also im Grunde genommen sein was über die Tastatur eingegeben wird.
Wir haben dies noch nicht implementiert weil wir das in
der Hauptfunktion implementieren werden.
Spieler wird sein der aktuelle Spieler.
Wir werden beides brauchen von diesen, um unsere Marken zu machen.
Also werden wir es tun Ich werde eine Reihe
von else-Anweisungen haben, wenn else-Anweisungen.
Wir werden die Wahl prüfen, Welches ist, was vom Benutzer eingegeben wird.
Und wenn die Wahl gleich 1 ist, wir möchte etwas in dieses Quadrat zeichnen.
Wir wollen auch sicherstellen dass dieses Quadrat verfügbar ist.
Also, wenn es gleich 1 ist und nicht Derzeit gleich 1, bedeutet dies, dass im
Grunde jemand bereits ein x gesetzt hat oder ein o da und wir können es nicht benutzen.
Wenn es gleich eins ist und sie Wenn Sie eins eingegeben haben, bedeutet dies, dass wir
das Array auf einen bestimmten Wert setzen können.
Wir werden das Array auf was einstellen wurde entweder in der o der x übergeben.
Und wir werden wiederholen dies für jede Wahl zu tun.
Wenn es um 2 3 4 5 6 8 oder 9 geht.
Also ein paar andere Wenns das macht das gleiche.
Wenn der Benutzer Auswahl 2 eingegeben hat, sind wir um sicherzustellen, dass die
Einrückung gut ist und Quadrat 2 verfügbar ist, Wir werden Quadrat 2 mit allem markieren, was wir
hier passiert haben.
Und je nachdem, welcher Spieler an der Reihe ist ist, wir werden ein oder ein x übergeben.
Jetzt das Letzte, was wir tun müssen Diese Funktion müssen wir validieren.
Wenn sie irgendetwas bestanden haben außer eins bis neun, dann ist
das ein ungültiger Zug.
Also unsere letzte Aussage Hier wird eine Nachricht ausgedruckt, die besagt, dass ein ungültiger Zug vorliegt Markiere den
Spieler um eins.
Weil du dich an Spieler erinnerst sind entweder eins oder 2.
Und wir werden den Spieler markieren zurück und dann werden wir es in
unserer Schleife auf unsere Hauptfunktion erhöhen.
Und dann das letzte Ding bekommen char pausiert nur das Programm, so
dass der Benutzer drücken muss Rückkehr nach ungültigem Umzug.
Andernfalls würde ein ungültiger Umzug erfolgen angezeigt werden und dann würde es sofort
gelöscht werden, weil Wir würden das Brett wieder neu zeichnen.
Also hol char es pausiert.
Es zwingt Sie, die Eingabetaste zu drücken um einen anderen Wert einzugeben.
Und das sind unsere 3 Funktionen.
Denken Sie daran, diese Funktion gibt nichts zurück.
So können wir es unten halten.
Jetzt müssen wir eigentlich Implementieren Sie das Gameplay.
Das Spiel geht in der Hauptfunktion.
Für das Gameplay ist dies also der richtige Ort Wir werden den Benutzer bitten, eine Nummer
einzugeben, wir werden die zeichnen Board, wir werden nach dem Sieg suchen.
Also werden wir 2 erstellen lokale Variablen hier, und wir
werden unseren Player initialisieren.
Hier gehen wir hin Erstellen Sie unsere Ganzzahl I.
Dies wird für unsere Schleife verwendet.
Und unsere Note wird entweder x sein oder o, je nachdem wer an der Reihe ist.
Mark wird x oder o sein, glaube ich.
Mark wird x oder o sein.
Und die Wahl wird was sein Der Benutzer tritt über die Tastatur ein.
Also 2 lokale Variablen.
Wir werden auch unsere einstellen Spieler, der eine globale Variable ist.
Anfangs geht es einfach so Sei Spieler eins, um das Spiel zu starten.
Dann werden wir eine Schleife haben.
Wir werden im Grunde eine haben eine Schleife, bis wir fertig sind.
Ich werde eine Weile tun Schleife hier, weil ich möchte, dass
es mindestens einmal ausgeführt wird.
Ich möchte das anzeigen mindestens einmal an Bord.
Also werde ich das anzeigen Brett und spiele das
Spiel, bis ich im Grunde ein Unentschieden oder einen Gewinn bekomme.
Also werde ich es so lange machen wie ich ist ist gleich negativ 1.
Was bedeutet eine negative 1? stellt dar, dass das Spiel in Bearbeitung ist.
Ich werde die Rückkehr sein Wert für die Überprüfung auf Gewinn.
Und das werden Sie gleich sehen, Aber im Grunde
genommen, wenn ich eine Schleife habe, die immer wieder dasselbe macht und vorbei, bis das Spiel vorbei ist.
Und das Spiel wird sein vorbei, wenn es nicht negativ ist.
Was müssen wir also zuerst tun?
Als erstes müssen wir tun wir müssen die Tafel anzeigen.
Also kann ich einfach die anrufen Funktionsanzeigetafel.
Dann müssen wir den Spieler berechnen.
Und der Spieler startet Spieler eins.
Was wir hier machen
werden, ist Wir werden einen ternären Operator verwenden und wir werden sagen Wenn der Spieler Mod
2 ist, ist der Spieler gleich 1, sonst ist er gleich 2.
Dies ist ein Weg, um zu bestimmen der richtige Spieler.
Jede Iteration der Schleife geht von eins auf 2 oder 2 auf eins wechseln.
Wenn es als Spieler eins beginnt, es wird Spieler Mod
2 sagen, einer geteilt durch 2 oder der Rest von eins geteilt durch 2 ist was, eins.
Also, wenn es einer ist, bist du werde Spieler eins sein.
Und wenn Sie für die zurück gehen Bei der nächsten
Iteration wird der Spieler gleich 2 sein, weil Wir werden es erhöhen.
2 mod 2 ist 0.
Also, wenn es nicht gleich ist Eins, dann wird Spieler gleich
Spieler 2 sein.
Es wird nur so eingestellt Spieler eins, wenn Spieler Mod 2 eins ist.
Denken Sie daran, dieser Dreher Betreiber hoffentlich.
Das nächste was ich tun muss ist ich müssen die Eingabe vom Benutzer erhalten.
Also hier werde ich sagen, ich gehe um den Benutzer aufzufordern, eine Nummer einzugeben.
Ich werde Spieler Prozent d sagen Geben Sie entweder Spieler 1 oder 2 ein, geben Sie eine Zahl ein, und dann werde ich den
Spieler setzen Zum Ausdrucken Spieler eins oder 2.
Dann werde ich das lesen Eingabe vom Benutzer mit scanf.
Und das wird eine ganze Zahl sein, Das wird einen Punkt
auf dem Brett von eins bis neun darstellen.
Und ich werde speichern das in meiner Wahlvariablen.
Wahl ist ein Zoll, also ich muss die Adresse übergeben, und
ich muss Wahl sagen.
Nur wenn es eine Saite ist, würde ich Adresse nicht weitergeben.
Dann kann ich grundsätzlich feststellen ob die Marke ist oder nicht.
Ich muss feststellen, ob die Marke ist ein x oder nein basierend auf dem Spieler.
Also werde ich das benutzen wieder ternärer Operator.
Und ich werde zuweisen entweder ein x oder o markieren.
Wenn der Spieler gleich 1 ist, gehe ich zuweisen, um das x, Kapital x zu markieren.
Ansonsten gehe ich zu Weisen Sie ihm ein o, Kapital o zu.
Dieser ternäre Operator ist also sehr nützlich, wenn Sie Variablen basierend
auf einer Bedingung zuweisen müssen.
Wieder ist das, was dies sagt, ist Wenn der Spieler gleich 1
ist, ist die Markierung gleich x.
Sonst wird es gleich o sein.
Das Fragezeichen steht für if Die boolesche Auswertung ist wahr, der Doppelpunkt
gibt an, ob sie falsch ist.
Jetzt, wo ich den richtigen Brief bekommen habe, Ich kann meine
Funktion zum Markieren der Tafel aufrufen, indem ich nur Markieren sage Brett, in der x oder der o übergeben.
Nachdem ich die Tafel markiert habe und sie Nachdem ich ihre Auswahl getroffen
habe, muss ich prüfen, ob es einen Gewinner gibt.
Ich habe meine Variable ich welche sollte eigentlich
wohl wohl ein besserer name sein.
Nennen wir es Statusprüfung, Spiel Überprüfen Sie, wie wäre es damit oder Spielstatus.
Und der Spielstatus wird sein gleich eins eins negativ oder 0.
Spielstatus wird gleich sein, was vom Scheck für den
Gewinn zurückgegeben wird.
Denn denken Sie daran, diese Funktion wird Geben Sie eine Eins eine 0 oder eine negative Eins zurück.
Eine Eins, wenn das Spiel vorbei ist das Ergebnis, negativ, wenn das Spiel läuft, 0 wenn es
vorbei ist ohne Ergebnis.
Nun, da wir das Spiel gespeichert haben Status, wollen wir auch
den Zustand der Schleife ändern.
Also, wenn der Spielstatus ist gleich negativ, wir springen
aus der Schleife.
Ansonsten alles was wir tun müssen ist der Zug des Spielers zu ändern.
Wie ändern wir den Zug des Spielers? Wir erhöhen den Spieler nur um eins.
Auf diese Weise wird es das nächste Mal steigen und es wird 2 sein und der Spieler
wird gleich 2 sein und wir werden wieder runter gehen.
Wenn sie ungültige Versuche machen, was In den ungültigen Vorlagen wird
die Anzahl der Spieler verringert.
Wenn Sie die Anzahl der Spieler verringern, Sie kehren zum richtigen Spieler zurück.
Wenn es also eins ist, dekrementieren Sie es auf 0, die nächste Runde wird eine sein, es
ist im Wesentlichen wieder dieselbe Runde.
Deshalb erhöhen wir es.
Wenn es nun Spieler 2 ist, wir erhöhen es um eins.
Und was passiert ist 2 geteilt 2 ist 0.
Also setzt es tatsächlich ein der Spieler zurück zu eins.
So funktioniert das.
Aber das ist die ganze Logik.
Wir haben hier viel gemacht.
Sie sollten nicht alle schreiben diesen Code und sofort testen.
Du hättest mit arbeiten sollen das Teilen und Erobern, ständig testen, während
Sie den Code ausführen.
Jetzt werde ich liefern diese Lösung, aber lassen Sie es uns
ausführen und testen.
Es wird genauso funktionieren wie in die Demo aus der Challenge-Vorlesung.
Aber noch einmal, studieren Sie diesen Code und machen Sie Sicher verstehst du, was los ist.
Die Verwendung von Arrays und die Aufteilung erobern Ansatz, aber schauen Sie, wie
schön diese Hauptmethode aussieht.
Es ist sehr einfach zu wissen, was weiter in der Hauptmethode.
Anzeigetafel, Spieler wechseln und du Ich möchte wahrscheinlich hier Kommentare abgeben.
Wechsel drehen und dann auch hier bekommen eingabe.
Und dann richtig einstellen Buchstabe, stellen Sie den richtigen Charakter
basierend auf dem Spielzug ein.
Sie brauchen nicht einmal wirklich diese Kommentare, weil
die Funktionen so beschreibend sind.
Markieren Sie das Board und stellen Sie das Board basierend auf ein die Benutzerauswahl oder ungültige Auswahl.
Und dann die Spielstatusprüfung für den Sieg ziemlich selbsterklärend.
Und dann springen wir raus wenn das Spiel vorbei ist.
Lassen Sie uns das bauen.
Hoffentlich keine Fehler, nein Warnungen tun wir nicht, was schön ist.
Jetzt lass es uns laufen und du wirst es tun siehe, es funktioniert genauso wie in unserer Demo.
Das erste, was es tut, ist wird den Bildschirm anzeigen.
Und es wird erlauben uns eine Eingabe ausdrucken.
Und es hat unser Gitter, eins 2 3 4 5 6 7 8 9 unser Array.
Also sagt es mir Spieler eins Geben Sie etwas ein und ich
gebe etwas Gültiges ein.
Und es zeichnet es und es löscht den Bildschirm.
Es sieht also gut aus.
Und jetzt gibt es ein x in 3.
Jetzt ist Spieler 2 an der Reihe.
Ich werde etwas Ungültiges tun lassen.
Es heißt ungültige Züge, es pausiert.
Ich drücke die Eingabetaste, ich verstehe um wieder zu gehen Spieler 2.
Jetzt habe ich einen getroffen, neu gezeichnet mit dem o an der einen Stelle.
Und ich mache so weiter bis Wir haben einen Gewinner oder einen Verlierer.
Lassen Sie uns also einen Gewinner für o so verursachen.
Jetzt wird x sein, 2 o ist wird 5 sein, x wird 6 sein
und o wird 9 sein.
Spiel vorbei, weil wir gerade 3 0s gezogen haben.
Das einzige, was ich vergessen habe, war Nach der while-Schleife werden die Glückwünsche
angezeigt, die Sie gewonnen haben.
Und alles was wir dort tun müssen ist Wir müssen den Spielstatus überprüfen.
Wenn der Spielstatus gleich ist Eins, das heißt ein Spieler eins und es wäre der
letzte Spieler, der gewinnt.
Also würden wir ausdrucken Spieler Prozent d gewinnt.
Ansonsten gehen wir um einfach eine Auslosung auszudrucken.
Denn wenn wir aus unserer Schleife herauskommen und der Status war
negativ, wir wissen, dass das Spiel vorbei war und hatte ein Ergebnis, es
könnte sein, dass wir das letzte haben müssen, wenn Anweisung zum Anzeigen der Ergebnisse.
Lassen Sie es uns jetzt noch einmal als Gewinner laufen.
Und jetzt werden wir es tatsächlich tun jemanden gewinnen sehen.
Also werde ich nur gültig eingeben Zahlen hier
verursachen einen schnellen Gewinn für x und müssen dies tatsächlich tun Programm, weil das weggeht.
Da geht es, Spieler eins gewinnt und es spielte dort einen anderen schönen Klang.
Das war also ein langer Vortrag.
Ich entschuldige mich für den langen Vortrag.
Studiere diesen Code, ich werde Stellen Sie es als Quelldatei bereit.
Hoffentlich viel darüber lernen Methoden teilen und erobern.
Vielen Dank