1 00:00:02,200 --> 00:00:06,380 Wir haben viel Zeit auf diesem ersten Bildschirm verbracht, aber natürlich geht es in 2 00:00:06,400 --> 00:00:11,950 diesem Kurs aus gutem Grund darum, React Native zu lernen, und Sie haben viel über Layouting, Styling, Verbinden von 3 00:00:11,980 --> 00:00:16,810 Komponenten, Verwenden mehrerer Komponenten und Konfigurieren von integrierten Komponenten gelernt Das ist ein zentraler Bestandteil von React 4 00:00:16,810 --> 00:00:23,920 Native und ermöglicht es Ihnen, am Ende echte Apps zu erstellen. Trotzdem ist es jetzt an der Zeit, weiter an dieser App 5 00:00:23,920 --> 00:00:26,840 zu arbeiten. Bevor wir uns eingehender mit anderen Dingen 6 00:00:27,190 --> 00:00:31,630 befassen, die wir später stylen könnten, möchte ich sicherstellen, dass diese Schaltfläche zum Starten 7 00:00:31,840 --> 00:00:36,640 des Spiels funktioniert, da wir im Moment immer daran festhalten Starten Sie den Spielbildschirm, aber 8 00:00:36,640 --> 00:00:43,030 jetzt füge ich dem Bildschirmordner eine zweite Komponente hinzu, den Spielbildschirm selbst, also den Bildschirm, den Inhalt, den ich auf 9 00:00:43,210 --> 00:00:49,390 dem Bildschirm anzeigen möchte, wenn das Spiel ausgeführt wird, und das ist der Bildschirm, der dafür verantwortlich ist Zeigen 10 00:00:49,390 --> 00:00:54,940 Sie die Vermutung des Computers an und lassen Sie den Benutzer dem Computer mitteilen, ob dies richtig 11 00:00:54,940 --> 00:00:58,780 oder falsch ist, ob der Wert niedriger oder größer sein sollte. Das 12 00:00:58,930 --> 00:01:01,070 ist hier also das Ziel. 13 00:01:01,120 --> 00:01:04,660 Wie ich bereits erwähnt habe, ist es dennoch eine reguläre 14 00:01:04,660 --> 00:01:11,620 Komponente, daher müssen wir React auf jeden Fall importieren und wir werden auch einige Dinge aus React Native importieren, 15 00:01:12,010 --> 00:01:17,640 vor allem natürlich die Ansicht und den Text, mit denen kann man nichts falsch machen. Auch 16 00:01:17,650 --> 00:01:20,260 das Stylesheet braucht man normalerweise immer. 17 00:01:20,590 --> 00:01:28,150 Dann können wir hier unsere Funktionskomponente für den Spielbildschirm hinzufügen und 18 00:01:28,150 --> 00:01:38,310 das Styles-Objekt hier mithilfe von Stylesheet erstellen. Erstellen Sie so und exportieren Sie am Ende unseren Spielbildschirm hier als Standard und 19 00:01:38,310 --> 00:01:40,790 entfernen Sie dieses Plus hier oben. 20 00:01:40,800 --> 00:01:45,340 Jetzt haben wir diese Spielbildschirmkomponente hier definiert und jetzt lassen 21 00:01:45,370 --> 00:01:49,980 Sie uns kurz innehalten und darüber nachdenken, was hier passieren muss. 22 00:01:50,190 --> 00:01:55,620 Am Ende muss nun geschehen, dass der Computer eine Vermutung anstellen muss und zunächst 23 00:01:55,620 --> 00:01:56,460 eine Vermutung 24 00:01:56,520 --> 00:02:04,400 anstellen muss, wenn dieser Bildschirm zum ersten Mal geladen wird, aber auch dann, wenn der Benutzer im Grunde die Taste "Dies 25 00:02:04,410 --> 00:02:05,230 ist 26 00:02:05,310 --> 00:02:07,020 zu niedrig" oder "Zu hoch" 27 00:02:07,020 --> 00:02:13,460 drückt. Wann immer der Benutzer einen Hinweis darauf gibt, ob diese Vermutung ist, in welche Richtung der reellen 28 00:02:13,490 --> 00:02:18,990 Zahl diese Vermutung sozusagen ist, wann immer dies geschieht, möchten wir eine neue Vermutung generieren. 29 00:02:19,080 --> 00:02:27,240 Jetzt sollte die Vermutung selbst eine Zufallszahl sein. Daher erstelle ich jetzt eine neue Funktion außerhalb meiner Funktionskomponente, 30 00:02:27,360 --> 00:02:28,740 da dort 31 00:02:28,740 --> 00:02:35,700 keine Daten verwendet werden. Daher sollte sie nicht bei jedem erneuten Rendern neu erstellt werden 32 00:02:35,700 --> 00:02:38,190 Wenn Sie sich nicht auf Requisiten 33 00:02:38,250 --> 00:02:44,820 oder Status verlassen, können Sie auch einfach eine Funktion haben, die sich außerhalb Ihrer 34 00:02:44,820 --> 00:02:48,210 Komponente befindet, und ich werde diese Generierung 35 00:02:51,000 --> 00:02:52,770 zufällig zwischen nennen, 36 00:02:52,770 --> 00:02:54,920 da diese Funktion dies bewirkt. 37 00:02:54,930 --> 00:03:00,360 Es ist eine Funktion, die eine Zufallszahl zwischen einem Minimum und einem Maximum generiert 38 00:03:00,360 --> 00:03:02,010 und die es uns 39 00:03:02,070 --> 00:03:09,510 auch ermöglicht, bestimmte Zahlen auszuschließen. Beispielsweise sollte die erste Zahl, die wir generieren, die Lösung ausschließen, damit das Gerät, die 40 00:03:09,510 --> 00:03:14,010 App, niemals die Wahl des Benutzers erraten kann beim ersten Versuch. 41 00:03:14,010 --> 00:03:21,210 Jetzt hier wird das Minimum auf Mathe normalisiert. Ceil Minimum, um hier im Grunde 42 00:03:21,210 --> 00:03:31,160 genommen eine Ganzzahl zu haben, wenn eine Nicht-Ganzzahl eingegeben und aufgerundet wird, und Max wird auf den Boden 43 00:03:31,160 --> 00:03:45,920 gelegt, um dasselbe zu tun, aber abgerundet. Dann habe ich meine Zufallszahl, die ich mit Mathe generiere. zufällig und Math. 44 00:03:45,930 --> 00:03:54,470 random gibt uns eine Zufallszahl zwischen 0 und 1, um eine Zahl zwischen min und max zu haben, müssen wir diese mit max - min multiplizieren 45 00:03:54,970 --> 00:04:05,880 und dann am Ende auch hier min hinzufügen, aber auch sicherstellen, dass Sie Math aufrufen. Boden auf das Ergebnis dieser gesamten Operation hier und dies gibt 46 00:04:05,880 --> 00:04:10,410 Ihnen eine Zufallszahl zwischen diesem Minimum und Maximum. 47 00:04:13,340 --> 00:04:14,620 Nachdem dies generiert 48 00:04:14,630 --> 00:04:20,750 wurde, möchte ich überprüfen, ob die Zufallszahl gleich der Zahl ist, die wir ausschließen möchten. Dies wäre natürlich ein 49 00:04:20,750 --> 00:04:28,200 sehr seltener Zufall, kann aber vorkommen. In diesem Fall werde ich das Ergebnis eines anderen generierten Zufalls zwischen zurückgeben Rufen Sie an, wo 50 00:04:28,200 --> 00:04:33,300 ich einfach min, max weiterführe und ausschließe, was wir haben, also wiederhole ich einfach, generiere zufällig 51 00:04:33,300 --> 00:04:39,440 zwischen und gebe den Wert dieses wiederholten Laufs zurück, wenn wir dort den ausgeschlossenen Wert erneut erhalten, werden wir 52 00:04:39,460 --> 00:04:43,700 ihn noch einmal wiederholen, also letztendlich wir Ich werde dort ankommen und wenn 53 00:04:43,920 --> 00:04:49,140 wir nicht die ausgeschlossene Nummer haben, was in den meisten Fällen der Fall sein sollte, dann 54 00:04:49,140 --> 00:04:51,030 werde ich diese Zufallszahl sofort zurückgeben. 55 00:04:51,030 --> 00:04:55,940 Das ist also jetzt eine Funktion, die uns eine Zufallszahl generiert. 56 00:04:56,050 --> 00:05:06,070 Jetzt hier auf dem Spielbildschirm möchte ich einen Status verwalten, also importiere ich den useState-Hook aus React und initialisiere hier einen Status mit der 57 00:05:06,700 --> 00:05:12,040 Zufallszahl, da der Status, den ich hier verwalten möchte, die Vermutung des 58 00:05:12,040 --> 00:05:15,400 Computers ist, der aktuelle erraten und das erfordert 59 00:05:15,490 --> 00:05:21,640 auch eine eingestellte aktuelle Vermutungsfunktion, damit wir dies ändern können, wenn der Benutzer einen neuen 60 00:05:21,640 --> 00:05:22,900 Hinweis gibt. 61 00:05:22,900 --> 00:05:29,410 Hier können wir also Generate Random zwischen aufrufen, um einen Anfangszustand zu generieren, der gespeichert wird. Dieser wird 62 00:05:29,410 --> 00:05:31,990 dann nur als Anfangszustand betrachtet. Wenn 63 00:05:31,990 --> 00:05:37,540 diese Komponente neu erstellt wird und daher der Verwendungsstatus erneut aufgerufen wird, generieren wir eine 64 00:05:37,540 --> 00:05:43,810 weitere Zufallszahl Dies wird diesen Status dann jedoch nicht überschreiben, da der einmal festgelegte Status nicht erneut 65 00:05:43,810 --> 00:05:47,560 überschrieben wird, indem der hier abgeleitete Wert hinzugefügt wird. 66 00:05:47,570 --> 00:05:54,190 Dies wird von React nur berücksichtigt, wenn wir noch keinen Anfangszustand haben. Danach wird dieser Anfangszustand oder 67 00:05:54,190 --> 00:06:00,400 aktualisierte Zustand getrennt von der Komponente verwaltet und durch diesen Aufruf hier nicht erneut überschrieben. 68 00:06:00,400 --> 00:06:05,640 Wie auch immer wir diesen Anruf tätigen müssen, wir möchten zunächst eine Zufallszahl zwischen 1 und 100 erhalten. 69 00:06:05,650 --> 00:06:08,170 100 wird mit der Logik, die wir 70 00:06:08,200 --> 00:06:12,700 dort geschrieben haben, ausgeschlossen. Es wird also eine Zahl zwischen 1 und 99, 99 enthalten 71 00:06:12,790 --> 00:06:15,580 sein, und ich möchte ausschließen die Wahl des Benutzers. 72 00:06:16,210 --> 00:06:19,040 Ich erwarte, dass dies hier auf meine Requisiten kommt, 73 00:06:19,150 --> 00:06:25,480 daher könnte die Benutzerauswahl ein Requisitenname sein, den wir hier verwenden, und das ist der Wert, den ich ausführen möchte, da 74 00:06:25,480 --> 00:06:26,350 dies am 75 00:06:26,440 --> 00:06:30,310 Ende die Lösung ist und wir die Lösung nicht sofort erraten können. das 76 00:06:30,310 --> 00:06:31,480 wäre ein bisschen unfair.