>> ZAMYLA CHAN: Wir haben Spaß mit fünfzehn.
Fünfzehn ist das erste Spiel, die Sie erhalten zu implementieren und es ist interaktiv.
Nun, keine Sorgen machen.
Sie müssen nicht zu schreiben, die ganze Sache selber.
Sehen Sie sich den Code, da eine Verteilung viel von der Spielstruktur ist bereits
stellen sie für Sie.
Er akzeptiert und analysiert eine Befehlszeile Argument von dem Benutzer und erzeugt eine
Board, basierend auf diesen Eingang.
Es prüft, ob das Spiel gewonnen und Ausfahrten sobald der Benutzer das Spiel gewonnen.
Und um das Spiel zu gewinnen, wird es Eingabe von dem Benutzer und
ruft die Funktion Verschieben.
>> So werden wir umsetzen vier Funktionen für das Spiel der Fünfzehn,
init, ziehen, verschieben und gewann.
Lassen Sie uns zunächst angehen init.
In init initialize vertreten wir der Vorstand in einer 2D-Integer-Array.
Und dies ist eine globale Variable namens Platte mit Abmessungen MAX und MAX,
die maximalen Abmessungen der Platine.
Nun, die tatsächliche Dimension des Vorstandes durch den Benutzer, dargestellt in bestimmten
die ganze Zahl d, die könnten weniger als MAX.
Aber in C, können Sie nicht die Größe Arrays so dass Sie mit stecken
die maximale Abmessung.
>> Ihre Aufgabe ist es, in init bevöl die Werte des Bord
mit dem richtigen Wert.
Jetzt haben wir gesehen, 1D-Arrays, aber wie kann 2D-Arrays zu arbeiten?
Es gibt ein Index der Zeile, auf Null auch indiziert wie immer, und dann
die Säule.
Und Sie werden das Raster in auszufüllen absteigenden Werten, einfach so.
Gitter, 0, 0, Zeile 0, Spalte 0, 8, Gitter 0, 1 7 ist.
Dies ist ein Beispiel, wo d, d wenig, 3 ist.
>> Nun muss auch der Vorstand in Fünfzehn enthalten eine leere Fliesen, wenn Sie überhaupt haben
mit dem physischen Spiel gespielt.
Aber, das ist ein Integer-Array Bord, so Alle Werte müssen ganze Zahlen sein.
So ist es an Ihnen zu entscheiden, eine ganze Zahl Wert auf eine leere Kachel darzustellen.
Um Ihre Karte zu initialisieren, die Sie verwenden können Loop-Strukturen enthalten die
Ausgangszustand des Boards, wo Bord i j die Element
Zeile i und Spalte j.
Sie beginnen in der absteigenden Reihenfolge und denken Sie daran, dass, wenn die Anzahl der Kacheln
ungerade ist, dann sind Sie gehen zu müssen sind tauschen sich die Position 2 und 1.
So gibt es, wir haben unsere initialisiert Bord.
>> Jetzt, da wir initialisiert haben unsere Bord, ist es Zeit, es zu zeichnen.
Auslosung wird den aktuellen Zustand des Druck Bord, aber Sie müssen sicherstellen, dass
Fliesen in der gleichen Reihenfolge zu drucken dass Sie sie initialisiert haben.
Und Sie müssen auch formatieren Ihre Zahlen richtig.
Weil wir vielleicht einzelne Ziffern haben und zweistellig, dann wollen
ein Leerzeichen zu drucken, bevor alle einstelligen Zahlen.
Sie verwenden dass durch die Verwendung der Platzhalter -.
>> Aber denken Sie daran unsere Leerzeichen.
Wir wissen nicht um die tatsächliche Anzahl drucken möchten dass wir gewählt, um darzustellen
dass Leerzeichen in Pension, aber wir haben auch wollen nicht, dass überhaupt nichts zu drucken.
Also, was Sie tun können, ist, um ein Symbol zu definieren oder Charakter stellen die
blank Fliese.
In den vorherigen Beispielen habe ich eine gewählt zu unterstreichen, und dann müssen Sie nur drucken
dass, wenn Sie die leere erreichen Platz in Ihrem Zeichenfunktion.
>> So ziehen wird für Schleifen geschachtelt haben.
So etwas wie dies.
Für jede Zeile, und dann für jeden Wert in die Zeile, die Sie Drucklegung sind die
Wert in diesem Raum.
Wenn Sie alle Werte gedruckt haben in der Reihe, dann
kann eine neue Zeile zu drucken.
Denken Sie daran, dass der Auftrag für Ihren Unentschieden Funktion muss echo oder spiegeln die Reihenfolge
in Ihrer Funktion initialisiert.
>> Nun, da Sie das Brett initialisiert und dass Sie es gezeichnet haben, ist es Zeit zu lassen
der Benutzer bearbeiten und ihre Bewegungen.
So in der Fifteen.c Funktion, die Programm nimmt Eingaben von dem Benutzer und
ruft dann die Move-Funktion, vorbei der Anzahl der Kacheln, die
Nutzer will sich zu bewegen.
Nun, seien Sie vorsichtig.
Dies ist die tatsächliche Anzahl der Fliese und nicht seine aktuelle Position.
So müssen Sie für die Fliesen suchen Position zu wissen, wo es ist.
>> Jetzt sollten Sie nur dem Benutzer ermöglichen einen Schritt machen, wenn es legal ist.
Ein Rechts Bewegung ist jede Fliese, ist neben dem leeren Fliese.
Das bedeutet, dass oben und unten, um links und rechts.
So werden Sie müssen wissen, wo der Rohling Fliese ist als gut.
Nun, für jede Bewegung, die Sie suchen die Nutzer Fliesen, aber es ist wahrscheinlich
nicht am besten, für die leere Kachel suchen jedes Mal, weil Sie es tun
jedes Mal die Nutzer will sich zu bewegen.
Also, statt, ist es am besten zu erinnern, wo der Rohling Fliese wird mit einigen
und benannte Variablen.
Also, wenn Sie erlauben es dem Benutzer, um ihre bewegt, sind sie auf dem besten
Weg, um das Spiel zu gewinnen der Fünfzehn.
>> Um das Spiel der Fünfzehn, die Fliesen zu gewinnen haben, in einer bestimmten Reihenfolge angeordnet sein, und
gewann die Funktion überprüft, ob das Spiel gewonnen.
Es gibt True zurück, wenn das Spiel gewonnen und Die Fliesen sind in der richtigen Reihenfolge,
sonst Falsch.
Also, um das Spiel der Fünfzehn, Fliesen gewinnen haben zu steigen, um mit der
blank Fliesen in der unteren rechten Ecke.
So, wie Sie überprüfen, ob der Benutzer hat das Board in rechts bewegt
Orientierung?
>> Nun, Sie werden über das Brett durchlaufen und überprüfen Sie die Werte, um sicherzustellen, dass
sie sind an der richtigen Stelle.
Um dies zu tun, können Sie verschachtelte verwenden können for-Schleifen wie Sie getan haben
in Zug und in init.
Es gibt ein paar Möglichkeiten, um zu überprüfen, und überprüfen, ob das Board
richtige und eine Gewinn Bildung, though.
Wenn Sie von links nach rechts zu gehen, ab aus der oberen Reihe nach unten, dann jeden
Zahl muss größer sein als die vorherige.
Seien Sie vorsichtig, was schätzen Sie habe gewählt, für Ihre leere Kachel aber.
>> Oder Sie könnten eine Zählervariable verwenden sicherzustellen, dass jeder Wert in Ort ist, wenn
Sie kommen mit einer Art Formel, um dies darzustellen.
Also, viel Spaß zu experimentieren mit der Mathematik.
Sobald Sie mit einem Weg, Rückkehr kommen Wahr, wenn der Benutzer das Spiel gewonnen hat.
Aber wenn irgendein Wert nicht korrekt ist, Rück Falsch, muss der Benutzer weiterbewegen
weil sie nicht das Spiel gewonnen.
Wenn Sie dieses Kontroll implementieren und, zusammen mit initialize, zeichnen und bewegen,
Sie das Spiel der Fünfzehn abgeschlossen haben.
Herzlichen Glückwunsch und viel Spaß beim Spielen.
Mein Name ist Zamyla und das ist CS50.