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.