1 00:00:02,200 --> 00:00:06,380 Więc spędziliśmy mnóstwo czasu na pierwszym ekranie, ale oczywiście nie bez 2 00:00:06,400 --> 00:00:11,950 powodu, ten kurs dotyczy nauki React Native, a nauczyłeś się dużo o układaniu, stylowaniu, łączeniu komponentów, 3 00:00:11,980 --> 00:00:16,810 korzystaniu z wielu komponentów i konfigurowaniu już wbudowanych komponentów i jest to podstawowa 4 00:00:16,810 --> 00:00:23,920 część React Native i pozwala na tworzenie prawdziwych aplikacji. Niemniej jednak nadszedł czas, aby kontynuować pracę nad tą 5 00:00:23,920 --> 00:00:26,840 aplikacją i zanim zagłębimy się w inne 6 00:00:27,190 --> 00:00:31,630 rzeczy, które moglibyśmy zaprojektować, co zrobię później, chcę się upewnić, że 7 00:00:31,840 --> 00:00:36,640 ten przycisk uruchamiania gry działa, ponieważ teraz zawsze utknęliśmy w tym uruchom 8 00:00:36,640 --> 00:00:43,030 ekran gry, ale teraz dodam drugi komponent do folderu ekranów, sam ekran gry, więc ekran, zawartość, 9 00:00:43,210 --> 00:00:49,390 którą chcę pokazać na ekranie, gdy gra jest uruchomiona i to jest ekran, który jest 10 00:00:49,390 --> 00:00:54,940 odpowiedzialny za pokazując domysły komputera i pozwalając użytkownikowi powiedzieć komputerowi, czy to dobrze, czy 11 00:00:54,940 --> 00:00:58,780 źle, jeśli wartość powinna być mniejsza lub większa, więc 12 00:00:58,930 --> 00:01:01,070 to jest cel tutaj. 13 00:01:01,120 --> 00:01:04,660 Jak już wspomniałem wcześniej, jest to jednak zwykły komponent, 14 00:01:04,660 --> 00:01:11,620 więc na pewno musimy zaimportować React, a także zaimportować niektóre rzeczy z React Native, co najważniejsze, oczywiście 15 00:01:12,010 --> 00:01:17,640 widok i tekst, z tymi nigdy nie można się pomylić, oczywiście także arkusz 16 00:01:17,650 --> 00:01:20,260 stylów, zazwyczaj zawsze ich potrzebujesz. 17 00:01:20,590 --> 00:01:28,150 Następnie tutaj możemy dodać nasz składnik funkcjonalny ekranu gry, stworzyć tutaj 18 00:01:28,150 --> 00:01:38,310 obiekt stylów za pomocą arkusza stylów. Utwórz tak, a na koniec wyeksportuj nasz ekran gry tutaj jako domyślny i pozbądź 19 00:01:38,310 --> 00:01:40,790 się tego plus tutaj na górze. 20 00:01:40,800 --> 00:01:45,340 Więc teraz mamy zdefiniowany tutaj element ekranu gry, a teraz 21 00:01:45,370 --> 00:01:49,980 zatrzymajmy się na chwilę i zastanówmy się, co musi się tutaj wydarzyć. 22 00:01:50,190 --> 00:01:55,620 Teraz na końcu musi się zdarzyć, że komputer musi zgadywać i musi 23 00:01:55,620 --> 00:01:56,460 zgadywać początkowo, 24 00:01:56,520 --> 00:02:04,400 gdy ten ekran się ładuje, ale także za każdym razem, gdy użytkownik w zasadzie naciska, to jest zbyt 25 00:02:04,410 --> 00:02:05,230 niski 26 00:02:05,310 --> 00:02:07,020 lub zbyt wysoki przycisk, 27 00:02:07,020 --> 00:02:13,460 więc ilekroć użytkownik podaje wskazówkę dotyczącą tego, czy jest to przypuszczenie, w którym kierunku 28 00:02:13,490 --> 00:02:18,990 liczby rzeczywistej to przypuszczenie, jeśli tak się dzieje, chcemy wygenerować nowe przypuszczenie. 29 00:02:19,080 --> 00:02:27,240 Teraz przypuszczenie powinno być liczbą losową, dlatego zacznę od utworzenia nowej funkcji poza moim komponentem funkcjonalnym, ponieważ 30 00:02:27,360 --> 00:02:28,740 nie będzie 31 00:02:28,740 --> 00:02:35,700 ona wykorzystywać żadnych danych, więc nie powinna być odtwarzana przy każdym ponownym renderowaniu komponentów, aby 32 00:02:35,700 --> 00:02:38,190 zaoszczędzić trochę wydajności, jeśli nie 33 00:02:38,250 --> 00:02:44,820 polegasz na rekwizytach lub stanie, możesz też po prostu mieć funkcję, która znajduje się 34 00:02:44,820 --> 00:02:48,210 poza twoim komponentem, a ja wygeneruję losową 35 00:02:51,000 --> 00:02:52,770 generację pomiędzy, ponieważ 36 00:02:52,770 --> 00:02:54,920 taka będzie funkcja tej funkcji. 37 00:02:54,930 --> 00:03:00,360 Jest to funkcja, wygeneruje losową liczbę między minimum a maksimum, co 38 00:03:00,360 --> 00:03:02,010 pozwala nam 39 00:03:02,070 --> 00:03:09,510 również wykluczyć pewne liczby, na przykład pierwsza generowana liczba powinna wykluczyć rozwiązanie, aby urządzenie, aplikacja 40 00:03:09,510 --> 00:03:14,010 nigdy nie mogła zgadnąć wyboru użytkownika za pierwszym razem. 41 00:03:14,010 --> 00:03:21,210 Teraz tutaj minimum zostanie znormalizowane do matematyki. Ceil minimum, więc zasadniczo mieć 42 00:03:21,210 --> 00:03:31,160 liczbę całkowitą, jeśli wprowadzono liczbę całkowitą i zaokrąglić w górę, a maksimum zostanie zmienione, aby zrobić 43 00:03:31,160 --> 00:03:45,920 to samo, ale zaokrąglone w dół. Potem będę miał moją losową liczbę, którą wygeneruję za pomocą Math. losowe i matematyczne. 44 00:03:45,930 --> 00:03:54,470 random daje nam losową liczbę od 0 do 1, więc aby mieć liczbę między min a maksimum, musimy pomnożyć to przez max - min, a 45 00:03:54,970 --> 00:04:05,880 następnie również na końcu, dodaj tutaj min, ale upewnij się też, że zadzwonisz do Math. piętro na wynik tej całej operacji tutaj, a to da 46 00:04:05,880 --> 00:04:10,410 ci losową liczbę między tym minimum a maksimum. 47 00:04:13,340 --> 00:04:14,620 Teraz po 48 00:04:14,630 --> 00:04:20,750 wygenerowaniu chcę sprawdzić, czy liczba losowa jest równa liczbie, którą chcemy wykluczyć, co byłoby oczywiście bardzo 49 00:04:20,750 --> 00:04:28,200 rzadkim zbiegiem okoliczności, ale może się zdarzyć, w którym to przypadku zwrócę wynik innego generowania losowego między zadzwoń tam, 50 00:04:28,200 --> 00:04:33,300 gdzie po prostu przekażę min, maks i wykluczę, które otrzymaliśmy, więc po prostu 51 00:04:33,300 --> 00:04:39,440 powtórzę, wygeneruję losową pomiędzy i zwrócę wartość tego powtarzanego przebiegu, jeśli ponownie otrzymamy wykluczoną wartość, powtórzymy 52 00:04:39,460 --> 00:04:43,700 ją jeszcze raz, więc ostatecznie Dostanę się tam, a jeśli 53 00:04:43,920 --> 00:04:49,140 nie będziemy mieć wykluczonego numeru, który powinien mieć miejsce w większości przypadków, od 54 00:04:49,140 --> 00:04:51,030 razu zwrócę ten losowy numer. 55 00:04:51,030 --> 00:04:55,940 Jest to teraz funkcja, która generuje nam liczbę losową. 56 00:04:56,050 --> 00:05:06,070 Teraz tutaj, na ekranie gry, chcę zarządzać jakimś stanem, więc zaimportuję hak useState z React i zainicjuję tutaj jakiś stan losową 57 00:05:06,700 --> 00:05:12,040 liczbą, ponieważ stanem, którym chcę tu zarządzać, jest zgadywanie komputera, aktualny 58 00:05:12,040 --> 00:05:15,400 zgadnij, a to także wymaga ustawienia 59 00:05:15,490 --> 00:05:21,640 bieżącej funkcji zgadywania, abyśmy mogli to zmienić za każdym razem, gdy użytkownik poda 60 00:05:21,640 --> 00:05:22,900 nową wskazówkę. 61 00:05:22,900 --> 00:05:29,410 Więc tutaj możemy wywołać generowanie losowe pomiędzy, aby wygenerować stan początkowy, który zostanie zapisany, a następnie będzie 62 00:05:29,410 --> 00:05:31,990 to traktowane tylko jako stan początkowy, 63 00:05:31,990 --> 00:05:37,540 więc kiedy ten komponent zostanie odbudowany, a zatem stan użycia zostanie wywołany ponownie, wygenerujemy 64 00:05:37,540 --> 00:05:43,810 kolejną liczbę losową ponownie, ale to nie zastąpi tego stanu, ponieważ po początkowym ustawieniu stanu nie 65 00:05:43,810 --> 00:05:47,560 zostanie on ponownie zastąpiony przez dodanie wartości uzyskanej tutaj. 66 00:05:47,570 --> 00:05:54,190 Zostanie to uwzględnione przez React tylko wtedy, gdy nie mamy jeszcze stanu początkowego, a następnie ten stan początkowy 67 00:05:54,190 --> 00:06:00,400 lub zaktualizowany będzie zarządzany odłączony od komponentu i nie zostanie zastąpiony przez to wywołanie tutaj. 68 00:06:00,400 --> 00:06:05,640 Początkowo jednak musimy wykonać to połączenie, chcemy uzyskać losową liczbę od 1 do 69 00:06:05,650 --> 00:06:08,170 100, 100 jest wykluczone z 70 00:06:08,200 --> 00:06:12,700 logiką, którą tam napisaliśmy, więc będzie to liczba od 1 do 99, 71 00:06:12,790 --> 00:06:15,580 99 uwzględnione i chcę wykluczyć wybór użytkownika. 72 00:06:16,210 --> 00:06:19,040 Spodziewam się, że dostanę to tutaj na moich rekwizytach, 73 00:06:19,150 --> 00:06:25,480 więc wybór użytkownika może być nazwą rekwizytu, której tu używamy, i to jest wartość, którą chcę wykonać, ponieważ jest 74 00:06:25,480 --> 00:06:26,350 to rozwiązanie 75 00:06:26,440 --> 00:06:30,310 na końcu i nie będziemy w stanie odgadnąć rozwiązania od razu, to 76 00:06:30,310 --> 00:06:31,480 byłoby trochę niesprawiedliwe.