Hallo und willkommen zurück.
In dieser Vorlesung möchte ich Gib dir eine weitere Herausforderung.
Es hängt mit Funktionen zusammen, aber Bei dieser Herausforderung geht es
mehr um Teilen und Erobern. Es geht Um mehr über die Organisation Ihres Programms nach
Modulen zu erfahren, geht es los um mehr über das Lösen von Problemen zu erfahren.
Ich möchte, dass du es tust Sie ein Tic-Tac-Toe-Spiel zu schreiben.
Das wird dir nur helfen Werden Sie ein besserer Problemlöser, und
er wird Ihnen bei der Organisation helfen Ihr Programm rund um Funktionen.
Sie werden auch ein Array
verwenden, Sie müssen herausfinden herausfinden, wie bestimmte Daten formatiert
werden, aber es wird ein Simulation eines Tic-Tac-Toe-Spiels.
Wir werden keinen Computer schreiben.
Es wird ein Spieler sein 1 gegen Spieler 2.
Also möchte ich, dass du eine schreibst Programm, das Tic-Tac-Toe spielt.
Hoffentlich ist jeder vertraut mit diesem Programm oder diesem
Spiel, sollte ich sagen.
Es ist nur ein Spiel, das gespielt wird auf einem 3 x 3-Raster mit zwei Spielern.
Du wechselst dich ab.
X ist eine Nase.
Hoffentlich klingelt das.
Ich wollte nicht gehen müssen und Erkläre dieses Spiel, aber hoffentlich kennst
du dich mit Tic-Tac-Toe aus.
Ich werde ein wenig zur Verfügung stellen Demonstration, wie es funktioniert und
wie ich erwarten würde, dass die Ausgabe abgespielt wird.
Aber es ist ein einfaches Tic Tac Toe-Spiel.
Was ich tun möchte, ist, dass du bist
Ich werde wahrscheinlich ein Array erstellen müssen, um das darzustellen eigentliche Platine, das 3 x 3 Raster.
Ich denke, Sie können mit nur durchkommen Erstellen eines eindimensionalen Arrays.
Sie könnten tatsächlich eine erstellen 2D-Array zur Darstellung der Zeilen
und Spalten.
2D wäre wahrscheinlich mehr intuitiv, aber es ist
möglicherweise etwas schwieriger, es in Ihrem Code zu visualisieren.
Aber so oder so funktioniert es.
Das Gute an der Programmierung ist Es gibt viele Lösungen für ein Problem.
Ich werde dir einen von meinen erzählen Lösungen und mein Design-Ansatz, aber zögern
Sie nicht, das Design zu ändern.
Solange du benutzt das c konstruiert richtig, das ist alles
was mich interessiert.
Ich möchte, dass Sie lernen, wie man c benutzt.
Solange Ihr Programm moduliert ist und es ist organisiert
und leicht zu pflegen, und es ist Qualitätscode, darum mache ich mir Sorgen.
Also eine Möglichkeit, nur eine Möglichkeit zu implementieren stellt die Platine als eindimensionales
Array mit zehn Elementen dar.
Der Grund, warum ich hier zehn Elemente habe Ich möchte nicht, dass du Null verwendest.
Diese zehn Elemente gehen um das Board
zu vertreten, aber sie werden auch vertreten die Koordinaten an der Tafel.
Also werde ich das demonstrieren und zeigen Sie, wie ich daran denke zu arbeiten.
Aber wie du gehst Um tatsächlich
die Box auszuwählen, in die Sie zeichnen möchten, müssen Sie basiert auf der Elementnummer.
Zusätzlich zum Erstellen eines Arrays für Auf dem Board muss man versuchen zu überlegen, wie
man dieses Problem lösen kann unten, wie du es organisieren wirst.
Ich denke zumindest dass Sie mindestens
drei Funktionen benötigen, wahrscheinlich mehr.
Aber du brauchst mindestens einen Funktion, die nach Gewinnern sucht.
Dies wird im Grunde nur sehen wenn eine Person das Spiel gewonnen hat
oder auch nach einem Unentschieden suchen kann.
Sie sollten eine Funktion haben das zieht das Brett.
Weil du zeichnen wirst das Brett nach dem Zug jedes Spielers.
Und du wirst - so du wirst das wiederverwenden.
Eine weitere Funktion zum Markieren Dies geschieht,
wenn der Benutzer tatsächlich setzen möchte x oder ein o in einem bestimmten Feld.
Sie benötigen eine Funktion zum Einstellen diese Box als x oder o.
Was passieren wird, ist, dass Sie es wahrscheinlich sein werden Füllen Sie das Array mit diesem x oder o.
Und so können Sie sich das ansehen Array, um zu sehen, ob Sie gewonnen oder verloren haben.
Und in der Markentafel ist es Außerdem können Sie nach einer
ungültigen Auswahl suchen.
Also, wenn gültige Auswahlen waren eins bis neun und der Benutzer gab zehn
ein, würden Sie sagen, hey, Sie können das nicht tun, versuchen Sie es erneut.
Das Spiel sollte benutzerfreundlich sein, sollte aus benutzerperspektive intuitiv zu
bedienen sein und Es sollte so weit wie eine
Programmierperspektive organisiert sein.
Denken Sie wirklich an diesen.
Planen Sie etwas, planen Sie etwas, holen Sie Papier heraus, Schreiben Sie ein Design darüber, wie Sie dieses Problem
angreifen und was Funktionen, die Sie verwenden müssen.
So wie ich denke Lassen Sie mich Ihnen
eine kleine Demo zeigen.
Ich werde Ihnen keine Quelle zeigen Code, aber so stelle ich mir das
Spiel vor, wenn wir es ausführen.
Vielleicht ein kleiner Titel das heißt, hey, das Spiel.
Und dann auch noch ein bisschen Informationen über den Spieler.
Spieler 1 wird x sein, Spieler 2 wird o sein.
Denken Sie daran, das hat nicht den Computer spielen.
Sie können einfach in jeder Runde setzen.
Sie müssten also dieses Spiel spielen mit einem Freund, der neben dir sitzt, und sie
müssten Sagen Sie, wo Sie die Nummer setzen sollen.
Wenn du wirklich wirst Ehrgeizig, können Sie
das Spiel schreiben, um gegen einen Computer zu spielen.
Aber Sie werden feststellen, dass die 3 x 3 Das Raster enthält zunächst Zahlen.
Sie können diese Nummern zur Eingabe verwenden.
Also, wenn Sie Spieler wollen um an die Reihe zu kommen und
sie repräsentieren x, je nachdem was Nummer, die sie eingeben, dort
wird das x platziert.
Also drucken wir das Raster, das wir anzeigen das Board und dann teilen wir dem Benutzer auch
mit, wer an der Reihe ist und Wir sagen ihnen, sie sollen eine Nummer eingeben.
In diesem Fall werde ich also weitermachen und geben Sie Nummer zwei ein und drücken Sie die Eingabetaste.
Und was wird passieren, wenn ich getroffen habe? zwei und
zurück, es wird tatsächlich sehen, ob jemand gewonnen hat, Es wird den Bildschirm löschen und
das Board neu zeichnen.
Also, nachdem ich 2 gedrückt habe und eintrete, wirst du Beachten Sie, dass ich immer noch den Titel habe, ich
habe immer noch Spieler 1 und Spieler 2.
Aber jetzt in Box 2 habe ich ein x.
Also, was hätte ich sonst tun sollen Dort hätte ich prüfen
sollen, bevor ich die Tafel angezeigt habe, ob oder nicht, wir hatten einen Gewinner oder ein Unentschieden.
Und das ist natürlich der erste Eintrag haben wir also keine.
Da haben wir keinen Gewinner oder ein Unentschieden, ich werde
jetzt den Spieler bitten, eine Nummer einzugeben und dann Sie können hier eine beliebige Nummer auswählen.
Nun, wenn ich eine ungültige eingegeben habe Zahl wie 10, es sollte mir sagen, dass
es ungültig ist.
Und es sollte mir erlauben vielleicht noch einen Schritt machen.
Wenn ich 2, 2 eingeben würde sollte auch ungültig sein.
Wenn ich also 2 eingebe, heißt es auch ungültig weil 2 schon von x genommen wird.
Also, wenn das Programm es mir erlaubt Versuchen Sie es noch einmal, Sie könnten sie einfach loswerden,
aber das ist nicht wirklich fair.
Also jetzt werde ich nur sagen wo möchte ich das o platzieren? Ich werde 5
sagen, ich werde setzen ungültiger Zug, es wird das Brett neu zeichnen
und es gibt ein o und 5.
Und jetzt heißt es Spieler 1.
Und das machst du bis Sie haben einen Gewinner oder ein Unentschieden.
Ich werde nur 9 sagen.
Jetzt habe ich dort ein x, gültig Einträge sind 1 3 4 6 7 und 8.
Ich werde 3 sagen.
Und lassen Sie uns tatsächlich versuchen, x zu bekommen gewinne also jetzt wird x in acht gehen
und ich werde o und 6 setzen, nur um es dir zu zeigen dass das Spiel mit einem Gewinner funktioniert.
Und dann habe ich 7 für x gesetzt, das Spiel sollte jetzt vorbei sein. Ich drücke die Eingabetaste.
Es heißt, Spieler eins gewinnt und es Ich habe sogar ein bisschen Sound für mich gespielt, ich
habe dort ein bisschen ausgefallenes Zeug gemacht.
Das Spiel ist also vorbei, Spieler eins gewinnt.
Und es sollte auch passieren, wenn Spieler 2 gewinnt oder wenn es ein Unentschieden gibt.
Überlegen Sie sich also, wie Sie wollen um dieses Problem anzugreifen.
Nettes kleines Programm.
Ich werde eine Lösung durchgehen und bereitstellen den Quellcode in der nächsten Vorlesung. Vielen Dank.