Hallo und herzlich willkommen.
Ich möchte eine Demonstration geben Lösung für
unsere vorherige Herausforderung, die umgesetzt wurde ein Vermutungs- und Zahlenspiel.
Lassen Sie uns also den Code aufrufen
Blöcke, schließe mein aktuelles Projekt und erstelle ein neues.
Dieses neue Projekt mache ich gerade Rätselraten-Spiel nennen.
Es wird ein Konsolenanwendung.
Also gehe ich einfach Nennen Sie es erraten Sie die Nummer.
Und was ich machen werde Um dieses Projekt zu starten, werde ich meine
Variablen deklarieren.
Ich erkläre immer gerne und Es sind meine Variablen oben.
Aber ich werde auch verwenden der Zufallszahlengenerator.
Also möchte ich das sicherstellen Ich habe ein paar enthält.
Stdlib ist standardmäßig bereits vorhanden.
Alles was ich tun muss, ist meine hinzuzufügen Zeit. h weil dies wieder für einen
Zufallszahlengenerator ist.
Dies ist im Grunde für die Zufallszahlengeneratorsitz.
Die anderen Variablen, die ich bin In diesem Programm
muss ich meine Zufallszahlen speichern.
Also werde ich nur sagen Zufallszahl, ich werde das auf 0 initialisieren, bis
ich Holen Sie es aus der eigentlichen Bibliothek.
Deklarieren Sie also die Initialisierung.
Ich werde eine Variable für erstellen Speichern Sie die Vermutung des Benutzers, und
ich werde sie mit 0 initialisieren.
Ich werde eine weitere Variable erstellen Das wird die
Anzahl der Vermutungen sein, die aktuelle Anzahl von Vermutungen oder
eigentlich sollte ich sagen, maximale Anzahl von Vermutungen, maximal Anzahl der Vermutungen, und ich werde dies auf 5
initialisieren, weil Sie können nur 5 Mal raten.
Ich muss auch eine Zeit schaffen Variable, damit ich sie für
meinen Zufallszahlengenerator verwenden kann.
Also werde ich nur Zeit t t sagen.
Das erste, was ich tun möchte, bevor ich Bitten Sie den Benutzer um Eingabe, wenn
ich die Zufallszahl generieren möchte.
Ich denke, ich könnte das tun, nachdem ich gefragt habe der Benutzer für die Eingabe, aber es ist einfach,
das erste zu tun, was Sie tun.
Also werde ich meine initialisieren Zufallszahlengenerator, ich werde dort einen
kleinen Kommentar einfügen.
Stellen Sie sicher, dass Sie gut aussagekräftig verwenden Namen und stellen Sie sicher, dass Sie einrücken.
Es wird diese srand-Funktion verwenden über die ich in der Vorlesung gesprochen habe.
Sie können es einfach bestehen in einem Samen im Wesentlichen.
Also werde ich unsigniert sagen, und das bin ich auch Ich werde nur meine t-Variable übergeben.
Dies wird Zeit bekommen, ist ein Funktion, die die aktuelle Zeit abruft.
Ich werde das t übergeben, damit es sät es und dann werde ich es beenden.
Jetzt muss ich tatsächlich meine bekommen Zufallszahlengenerator, also werde ich
sagen, erhalte die Zufallszahl.
Und das alles wird reichen weist dem, was von der Rand-Funktion
zurückgegeben wird, eine Variable zu.
Sagen wir also Zufallszahl welche ist meine lokale
Variable gleich und benutze Zuweisungsoperator sagen Rand, der eine Funktion aufruft.
Sie müssen nichts davon wissen, aber ich werde es mit 21 säen.
Dies wird sicherstellen, dass meine zufällige Zahl ist nur zwischen 0 und 20.
Jetzt werde ich nur noch a ausgeben Koppeln Sie Nachrichten auf den Bildschirm, damit der
Benutzer weiß, was er tut.
Also mache ich eine Print-App und das bin ich Ich werde sagen, das ist ein Ratespiel.
Und dann werde ich auch Sagen Sie ihnen, dass
ich wieder eine Zahl zwischen 0 und 20 gewählt habe. Nur damit sie informiert sind.
Und dann 0 und 20, die Sie müssen rate und beende es mit dem Zeilenvorschub.
Jetzt, wo ich ihnen sagte, was ich Wenn ich im Spiel sein möchte, werde ich tatsächlich mit
dem Looping beginnen.
Und ich werde eine Schleife machen, bis meine Die Anzahl der Vermutungen entspricht 5.
Also was würde ich eigentlich lieber Ich wollte hier oben meine
Vermutungen klären, aber Ich möchte nicht initialisieren.
Ich möchte in meiner Schleife initialisieren nur um dir zu zeigen, dass ich das kann.
Wenn ich es dort initialisiert hätte, vor dem ersten Semikolon in der for-Schleife konnte ich
es leer halten.
So könnte ich zum Beispiel etwas tun Initialisieren Sie es hier oben.
Und dann würde ich in meiner for-Schleife Setzen Sie einfach ein Semikolon, da
ich keine Initialisierung durchführen muss.
Denn denken Sie daran, in unserer for-Schleife
Das erste, was Sie vor dem Semikolon haben, ist die Initialisierung der Regelkreisvariablen.
Ich habe es bereits initialisiert Ich muss es also nicht
tun, aber ich möchte das nicht tun.
Ich werde es nur erklären es hier oben und ich werde
es hier unten initialisieren.
Ich werde maximal sagen Anzahl der Vermutungen entspricht 5.
Das ist meine Regelungsvariable, Ich werde es initialisieren.
Ich werde aus dem springen Schleife, wenn meine maximale Anzahl von
Vermutungen erreicht ist.
Hier würde ich also sagen, dass ich es tatsächlich bin werde es anders schreiben.
Ich werde es so schreiben Die Schleife geht von 5 auf 0.
Meine maximale Anzahl beträgt also 5.
Es wäre besser zu Benennen Sie diese Variable um.
Lassen Sie es uns umbenennen und sagen Sie die Anzahl der Vermutungen.
Und die Anzahl der Vermutungen wird als 5 beginnen.
Und ich werde machen das geht rückwärts.
Und wenn die Anzahl der Vermutungen ist 0, ich möchte aus der Schleife springen.
Also meine Schleifenausgangsbedingung, Ich werde sagen, dass die Anzahl der Vermutungen
größer als 0 ist.
Sehen Sie hier, was ich mache.
Ich werde nur aus dem herausspringen Schleife, wenn ich keine Vermutungen mehr habe.
Wenn ich also größer als 0 bin, bin ich es werde in der Schleife bleiben.
Und dann das Letzte, was ich will In der for-Schleife bereitstellen,
nachdem der zweite Klimakolon geändert wurde dieser Regelkreisvariablen.
Also mache ich einfach eine minus minus Anzahl der Vermutungen.
Und was Sie beachten sollten In dieser for-Schleife fange
ich an ... Ich gehe fast rückwärts.
Ich fange bei 5 an und gehe zu 0.
Für alle Beispiele, die wir in der Vorlesung, wir beginnen bei 0 und gehen nach oben.
Aber Sie können beides tun, es spielt keine Rolle.
Sie iterieren hier immer noch 5 Mal.
Jetzt möchte ich eine anzeigen Nachricht, die ihnen sagt,
wie viele Versuche sie noch haben.
Also werde ich printf sagen, und tatsächlich werde ich den ternären Operator einbeziehen
hier, da wir es nicht benutzt haben.
Ich muss es nicht so machen, Aber ich werde es so machen, nur um
dir zu zeigen, wie es dir geht kann den ternären Operator verwenden.
Also werde ich dich hier ausdrucken habe Prozent d Versuche Prozent s übrig.
Prozent d wird sein gleiche Anzahl von Vermutungen und tr Prozent s,
es wird sich ändern.
Es werden entweder Versuche sein oder es wird versucht werden.
Und so werde ich mich ändern Was wird angezeigt, basierend auf der Anzahl
der Vermutungen, die ich noch habe.
Wenn die Anzahl von Vermutungen sind gleich 1.
Ich möchte keine Versuche planen Versuch bleibt übrig, das macht keinen Sinn.
Ich möchte einen Versuch ausdrucken.
Also hier werde ich das verwenden Termitoperator oder genauer
der bedingte Operator.
Ich werde sagen, ob es eine Anzahl von Vermutungen gibt gleich 1, dann setze die Anzahl der Vermutungen
gleich y, sonst setze es auf IES.
Und ich werde es drucken Was der Prozentsatz s tut, was auch
immer hier zurückgegeben wird.
Das wird also zurückkehren entweder a y an IES und zeigen die richtigen Informationen
an.
Also habe ich das nur getan, um zu sein Eine kleine
Fantasie zeigt Ihnen, wie Sie das Terminal verwenden können, drucken die richtigen Informationen heraus.
Nachdem ich die Nummer ausgedruckt habe von den letzten Versuchen, dann möchte ich ihnen sagen, dass
sie eine Vermutung eingeben sollen.
Also werde ich es ertragen Einige
Informationen und sagen Sie einfach printf, geben Sie einfach eine Vermutung ein und Dies wird einen Zeilenvorschub haben.
Geben Sie also eine Vermutung ein und dann gehe ich Um diese Vermutung mit scanf einzulesen, wissen wir, wie man von
der Tastatur liest.
Es wird eine ganze Zahl sein, also bin ich es Ich werde Prozent d machen und
ich werde es in die Vermutungsvariable setzen.
Also muss ich das kaufmännische Und verwenden.
Jetzt muss ich meine Überprüfung durchführen.
Ich muss überprüfen, ob das erraten wird Ich mache mir Sorgen.
Also hier haben wir eine andere Ausgangsbedingung.
Ich werde eine if-Anweisung verwenden.
Ich werde sagen, ob meine Vermutung ist gleich meiner Zufallszahl, was möchte
ich tun?
Nun, zuerst möchte ich drucken raus und sag ihnen, dass
sie richtig geraten sind.
Also werde ich ausdrucken, Herzlichen Glückwunsch, Sie haben es erraten.
Was möchte ich noch tun? ob sie richtig raten?
Ich möchte die Schleife verlassen.
Wie kann ich die Schleife verlassen?
Ich könnte Pause machen.
Ich könnte eine Pause machen wird aus meiner Schleife springen.
Nun, wenn es nicht gleich wäre, so Ich möchte ein anderes hinzufügen, wenn.
Wenn es nicht gleich ist, möchte ich überprüfen Stellen Sie sicher, dass sie die Nummer validiert haben.
Also bevor ich sagte du könntest haben eine verschachtelte Schleife zur Validierung, damit sie
wieder eintreten, Sie Sie müssen das nicht tun, Sie können einfach
eine f-Anweisung haben.
Also hier möchte ich die Nummer validieren.
Wenn es nicht gleich dem ist Zufallszahl, ich
möchte sicherstellen, dass es zwischen 0 und 20 ist.
Also, wenn die Vermutung kleiner als 0 ist oder Wir verwenden
einen logischen Operator oder 2 parallele Balken oder die Vermutung ist größer als 20, was im
Grunde genommen nach einer ungültigen Vermutung sucht.
Wenn dies der Fall ist und ich nicht Ich werde eine Klammer verwenden, weil
ich nur eine Aussage habe Hier sind Klammern optional, wenn Sie nur
eine Anweisung haben.
Wenn sie also eine ungültige Vermutung eingegeben haben, Alles was ich tun werde ist printf.
Ich werde ausdrucken, sagte ich Die Zahl liegt zwischen 0 und 20.
Und was hier passieren wird, ist nichts.
Es wird nur gedruckt das raus und
es wird zur nächsten Iteration gehen.
Es wird ihnen sagen, wie viele Versuche, die sie verlassen haben, und
es wird eine Vermutung eingehen.
Nun, wenn Sie nicht gültig wollten Zahlen, wenn sie gültige Zahlen
eingegeben haben, um nicht als Vermutung zu gelten, dann können Sie eine verschachtelte Schleife haben.
Aber wenn sie zu etwas 25 eintreten, es wird immer noch als Vermutung gelten.
Also sage ich einfach, ich setze eine Zahl zwischen 0 und 20.
Wenn sie eine gültige Nummer eingegeben haben aber es war nicht richtig,
das wäre die else-Klausel.
Hier werde ich nur sagen: Entschuldigung, falsche Nummer, und ich werde ihnen sagen,
ob es so ist größer oder kleiner als.
Und ich könnte das Ternäre gebrauchen Betreiber hier, aber ich werde nicht.
Fügen wir also auch hier ein Wenn hinzu.
Sonst, wenn zufällig größer als ist raten Sie mal, was möchte ich dann drucken?
Ich möchte leider Prozent d ausdrucken falsch, Prozent d wird ihre Vermutung sein.
Meine Zahl ist Prozent s ist das erste Wort.
Wenn der Zufall größer ist, Meine Nummer ist größer.
Meine Nummer ist größer als das, und
ich benutze keine Perzentile und ich habe nur einen Zeilenvorschub.
Sonst wenn die Zufallszahl ist weniger als erraten, dann möchte ich ihnen sagen, dass es niedriger
ist.
Also kann ich die Kopie machen und füge das gleiche ein.
Ich könnte mich entschuldigen, Nummer ist falsch, Meine Nummer ist kleiner als das.
Und wieder könnten Sie tatsächlich Setzen Sie diese 2 anderen ifs.
Sie könnten noch einen haben, wenn
und Sie könnten hier tatsächlich eine bedingte Erklärung abgeben.
Sie könnten den ternären Operator haben, aber ich werde 2 andere ifs verwenden und sagen, dass es
weniger als das ist.
Und dann wird es das sein, Das wird die Schleife beenden.
Und wenn wir aus der Schleife herauskommen und wir haben nicht richtig
geraten und unsere Anzahl von Versuchen überschritten, dann werde ich ihnen nur sagen, dass
sie 5 Versuche hatten und sie habe die Nummer nicht erraten und ich werde
ihnen die Nummer sagen.
Also eine letzte Ausgabe an den Benutzer zu erzählen ihnen, dass sie das Spiel nicht gewonnen haben und sagen
ihnen, wie die Nummer war.
Sie haben also 5 Versuche gehabt und sind gescheitert. Die Zahl war eine Zufallszahl.
Okay, macht das Sinn?
Wir machen hier viele Dinge.
Wir verwenden sonst if-Anweisungen Anweisungen in einer Schleife und wir implementieren
das Zahlenspiel.
Und das Letzte sind wir Rückkehr von der Hauptfunktion.
Also lasst uns weitermachen und kompilieren und Was hättest du während
dieser ganzen Übung tun sollen?
Du hättest testen sollen und in kleinen Stücken arbeiten.
Sie sollten wahrscheinlich haben begann zuerst zu arbeiten,
nur die Zufallszahl zum Arbeiten zu bringen testen und kompilieren und testen.
Dann starten Sie Ihre Schleife.
Stellen Sie sicher, dass Ihre Schleife nur für läuft die Anzahl der Vermutungen, maximal 5 mal und dann das
zum Arbeiten und Testen bringen.
Dann fragen Sie den Benutzer nach der Antwort Einige Informationen, bringen Sie das zum
Laufen und testen Sie.
Vergleichen Sie dann mit dem Zeitpunkt, zu dem das Programm beendet werden soll Sie raten richtig, testen
und schreiben dann Ihre if-Anweisungen Test, so würde ich implementieren.
Also lasst uns das bauen und sehen, ob es kompiliert.
Hoffentlich habe ich keine Fehler gemacht.
Ich werde Build sagen.
Ich habe einen Fehler, ich ungültige Nummer haben.
Es muss eine Zufallszahl sein, nicht zufällig, weil das der Name
meiner Variablen ist.
Und diesmal habe ich 0 Fehler 2 Warnungen.
Ich habe ein Prozent d Erwarten Sie eine passende int.
Ich habe vergessen, das zu löschen Zufallszahl oder die Vermutung.
Die Vermutung hier und die rate und der andere.
Ich möchte ihnen sagen, dass sie raten Entschuldigung, die Vermutung war falsch, ich muss das nicht
tun, aber nur eine kleine nette Sache.
Jetzt lass es uns bauen, weil du Ich möchte immer Ihre Warnungen korrigieren.
Sie möchten 0 Warnung 0 Fehler haben.
Wenn wir dies ausführen, müssen wir testen.
Und es gibt viele verschiedene Tests Fälle, die Sie hier ausführen möchten.
Sie möchten mehrere Tests ausführen Fälle, weil denken Sie daran, es ist nie gut, nur
eine Sache zu testen.
Hier heißt es also, dass dies eine Vermutung ist Spiel habe
ich eine Zahl zwischen 0 und 20 gewählt, die Sie müssen Vermutlich haben Sie noch 5 Versuche.
Also werde ich 16 einsetzen.
Sorry, 16 ist falsch, das Zahl ist kleiner als das.
Ich werde versuchen, es zu haben 8.
8 ist falsch, weniger als das.
Ich mache 4.
4 ist falsch, meine Nummer ist größer als das.
Oh, ich habe einen Fehler gemacht, ich habe das nicht zuerst gelesen.
Es ist also größer als 8.
Versuchen wir es mit 12.
Ich habe nur noch 2 Versuche.
Ich denke das Richtige mit 12.
Also heißt es Glückwünsche.
Sie möchten aber auch einen Fehler testen.
Sie möchten ein paar Dinge testen hier, aber hier lass mich testen und ich
werde meine Vermutung sagen und Ich werde nur 0 eingeben.
0 ist falsch.
Ich werde weiterhin 0 eingeben und dort habe ich mich wohl 5 mal geirrt.
Es heißt, Sie haben gehabt 5 Versuche und fehlgeschlagen.
Die Nummer, die Sie wollte raten war 3.
Das funktioniert also.
Lassen Sie uns nun testen, um sicherzugehen, was passiert, wenn wir ungültige Zahlen eingeben.
wenn ich 45 eingebe.
Ich sagte, die Zahl ist 0 und 20.
Das ist also ein weiterer Testfall und es zählte als ein Versuch.
Wenn ich diesen Account nicht als Versuchen Sie, es könnte eine verschachtelte Schleife haben.
Ich denke das ist es auch.
Wir haben alle Fälle getestet.
Wir haben die Fälle getestet, in denen Sie haben erfolgreich geraten.
Wir haben den Fall wo getestet Sie haben nicht erfolgreich geraten.
Und wir haben den Fall getestet, wo Sie haben eine ungültige Nummer eingegeben.
Vielleicht würde der einzige andere Test um sicherzustellen, dass es größer als und niedriger als sagte, was ich denke,
wir haben im ersten getestet, würde uns tatsächlich
sagen niedriger oder größer als eingeben.
Also lass es uns versuchen.
Also um diese Zeit, wenn ich 20 eingebe, es sagt weniger als das ist gut.
Jetzt gehe ich hinein 10 und ich habe es erraten.
Also ich denke sie sind schnell.
Aber wir sollten weniger als und sehen größer als in der gleichen Ausgabe.
Versuchen Sie es noch einmal und das zufällige Nummer funktioniert, weil ich unterschiedliche Nummern
generiere jedes Mal, wenn ich das Programm starte.
20 ist falsch.
Versuchen wir es jetzt mit 19.
Versuchen wir 1 und es ist größer als das.
Ich sehe also mehr und weniger als.
Ich bin mir also ziemlich sicher, dass es funktioniert.
Sieht für mich ziemlich gut aus.
Eine Sache, die Sie hätten beachten sollen Es gab einen kleinen Fehler im
Programm, mit dem ich Sie getestet habe.
Also, als du es gelaufen bist, weil wir es haben In dieser Pause hier wird immer
noch ausgedruckt, dass ich versagt habe obwohl, als es mir gelang.
Du hättest es also bemerken sollen dass ich in der vorherigen
Ausgabe die richtige Nummer denke.
Es wurden Glückwünsche ausgedruckt.
Aber dann habe ich es auch ausgedruckt gescheitert, das scheint nicht richtig.
Der Weg, dies zu beheben, liegt also bei Ihnen Sie haben keinen Durchbruch,
Sie möchten eine Rückkehr haben.
Und jetzt, wenn es zurückkommt Es
wird nicht in Zeile 39 ausgedruckt, wenn Sie gewinnen.
Es wird nicht gedruckt heraus, dass du versagt hast.
Also noch ein letzter Test und du solltest habe dies früher
gefangen, aber wenn wir bauen und wir richtig raten, Es wird kein Fehler angezeigt.
So können wir Lauf sparen und wann wir Führen Sie dieses aus, Sie haben 5 Vermutungen.
Ich werde 10 sagen, weniger.
Wir werden sagen 6, und ich habe es erraten.
Und du wirst es dort bemerken es sagt Glückwünsche.
Wir sehen diese zusätzliche Ausgabe nicht das heißt, ich habe auch versagt.
Also willst du dich vergewissern Fügen Sie diese Rückgabe in Zeile 30 hinzu,
damit das Programm korrekt ausgeführt wird.
Sie können eine weitere if-Anweisung hinzufügen, wenn Sie wollten, damit
der Ausdruck nicht ausgedruckt wird, hätten eine Pause machen können hier und dann bei
printf hätten Sie überprüfen können, wie viele Vermutungen gezählt wurden Sie mussten auch feststellen, ob es weniger
als 5 war, dann herzlichen Glückwunsch.
Aber ein kleiner Fehler da und Hoffentlich haben Sie es
beim Testen bemerkt, die Rückgabe wird es beheben.
Also ein ordentliches kleines Programm.
Ich hoffe das hat dir geholfen ein zu lernen viel über die
Schleife und alle Ihre Entscheidungsaussagen und wirklich Problemlösung.
Hoffentlich hast du das rausgebracht und entwarf dies, bevor Sie
tatsächlich anfingen zu schreiben Code, das ist immer wichtig.
Hoffe das hilft.
Ich werde den Quellcode für Sie bereitstellen kann es vergleichen und sehen und analysieren.
Vielen Dank.