1 00:00:02,310 --> 00:00:10,050 Sekarang sebelum kita menyelesaikan modul ini, mari kita kembali ke beberapa daftar dan ke beberapa konten yang dapat digulir karena dalam 2 00:00:10,050 --> 00:00:12,670 aplikasi ini, kita tidak memiliki konten seperti 3 00:00:12,690 --> 00:00:18,570 itu sama sekali dan sebenarnya, sangat penting bagi Anda untuk memahami bagaimana bekerja dengan daftar 4 00:00:18,570 --> 00:00:19,920 dan apa beberapa 5 00:00:19,920 --> 00:00:25,380 kebiasaan khusus adalah ketika datang ke daftar. Jadi katakanlah di sini kita ingin mencatat tebakan 6 00:00:25,380 --> 00:00:32,060 sebelumnya yang dibuat oleh komputer, kita ingin mencatatnya di bawah tombol plus dan minus kita di ruang kosong putih di sini. 7 00:00:32,310 --> 00:00:38,910 Untuk itu, kita tentu saja perlu mendaftarkan setiap tebakan yang dibuat oleh komputer dan kemudian menampilkannya dalam daftar. 8 00:00:38,910 --> 00:00:41,880 Jadi di layar game, mari kita mulai dengan mendaftarkannya. 9 00:00:41,970 --> 00:00:44,610 Saat ini kami hanya menghitung putaran di 10 00:00:44,610 --> 00:00:49,620 sini, namun tujuannya adalah agar kami tidak hanya menghitung putaran tetapi kami juga menyelamatkan putaran, 11 00:00:49,650 --> 00:00:52,770 jadi kami menyimpan tebakan yang dibuat di setiap putaran dan 12 00:00:52,920 --> 00:00:59,520 untuk mencapai itu di sini di putaran kami menyatakan, kita bisa mengelola array bukan angka dan saya akan memberi nama 13 00:00:59,520 --> 00:01:03,510 tebakan masa lalu ini menjadi sangat jelas tentang apa yang ada di 14 00:01:03,690 --> 00:01:06,690 sana dan oleh karena itu dinamakan set tebakan sebelumnya. 15 00:01:06,690 --> 00:01:13,390 Jadi sekarang tujuannya adalah untuk menambahkan tebakan baru di sini ke susunan ini setiap kali kita menghasilkan angka acak 16 00:01:13,390 --> 00:01:19,530 baru, jadi di sini di pengendali tebakan berikutnya. Di sana di mana kita mengatur putaran, alih-alih 17 00:01:19,560 --> 00:01:23,660 mengatur putaran seperti ini yang tidak kita kelola lagi, kita harus menetapkan 18 00:01:23,790 --> 00:01:30,420 tebakan masa lalu kita dan di sana kita perlu menggunakan tebakan sebelumnya dan benar-benar menambahkan tebakan baru di sini. 19 00:01:30,420 --> 00:01:37,540 Sekarang untuk itu, kita dapat menggunakan formulir fungsi di sini di mana kita mendapatkan curPastGuesses yang sedikit nama yang aneh 20 00:01:37,540 --> 00:01:42,790 tapi yang berarti bahwa ini adalah keadaan kita saat ini dan kami ingin memperbarui 21 00:01:42,790 --> 00:01:49,810 itu atau keadaan terakhir kami tepatnya dan kami ingin memperbarui itu dan kami ingin memperbaruinya dengan mengembalikan array baru 22 00:01:50,020 --> 00:01:55,720 yang akan menjadi keadaan baru kami dan tentu saja harus memperhitungkan tebakan masa lalu kami 23 00:01:56,020 --> 00:01:59,680 saat ini dan kemudian menambahkan tebakan baru di sana. 24 00:01:59,690 --> 00:02:04,280 Sekarang kita bisa menambahkan tebakan baru di akhir daftar itu atau di awal dan saya 25 00:02:04,280 --> 00:02:09,590 benar-benar akan menambahkannya di awal sehingga tebakan terbaru kita selalu di bagian atas daftar ketika nanti kita merendernya 26 00:02:09,590 --> 00:02:10,520 ke layar . 27 00:02:11,210 --> 00:02:17,600 Jadi di sini, kita dapat menambahkan angka berikutnya yang merupakan perkiraan baru kita saat ini yang sedang kita hasilkan di sini 28 00:02:17,600 --> 00:02:25,440 dan itulah yang harus kita tambahkan di sini sebagai sebuah item, bukan? Dengan itu, kami menambahkan item baru ke array ini dengan setiap tebakan. 29 00:02:25,470 --> 00:02:28,760 Sekarang jangan lupa bahwa kita juga mulai dengan tebakan, 30 00:02:28,770 --> 00:02:31,290 kita menghasilkan tebakan awal di sini, saya 31 00:02:31,290 --> 00:02:36,670 ingin memulai dengan tebakan itu dalam daftar dan oleh karena itu, kita harus menambahkannya ke 32 00:02:36,720 --> 00:02:44,040 daftar di sini, jadi saya akan mengekstraknya dari fungsi penggunaan negara kita panggil di sini dan buat tebakan awal, konstan awal 33 00:02:44,040 --> 00:02:51,910 yang merupakan angka yang dihasilkan secara acak ini dan sekarang tebakan awal ini yang saya tambahkan di sini untuk menggunakan keadaan dan 34 00:02:51,910 --> 00:02:57,850 juga tebakan awal yang saya tambahkan sebagai elemen pertama pada array di tebakan kami di masa lalu, 35 00:02:57,850 --> 00:02:59,200 gunakan inisialisasi negara. 36 00:02:59,200 --> 00:03:06,260 Sekarang jangan lupa bahwa gunakan status karena semua kode ini di sini tentu saja tayang ulang setiap kali komponen ini 37 00:03:06,340 --> 00:03:12,670 dirender ulang tetapi cara penggunaan keadaan berfungsi sedemikian rupa sehingga Bereaksi mendeteksi bahwa keadaan untuk komponen ini telah 38 00:03:12,670 --> 00:03:13,350 diinisialisasi, 39 00:03:13,780 --> 00:03:19,210 sehingga hanya akan mengatur nyatakan dugaan awal ini untuk pertama kali komponen ini dirender dan bukan 40 00:03:19,210 --> 00:03:21,400 untuk render berikutnya. Memang memang, 41 00:03:21,400 --> 00:03:28,120 dugaan awal ini akan diciptakan kembali tetapi itu tidak akan benar-benar digunakan karena penanganan keadaan 42 00:03:28,210 --> 00:03:33,060 yang terpisah di mana React mengetahui bahwa kita sudah memiliki keadaan. 43 00:03:33,070 --> 00:03:38,080 Jadi dengan itu, kami menginisialisasi ini, kami juga memulai tebakan kami di daftar itu dan kami menambahkan tebakan 44 00:03:38,380 --> 00:03:43,090 baru ke daftar di bagian bawah di sini. Dengan semua itu, kita harus memiliki 45 00:03:43,240 --> 00:03:46,480 beberapa tebakan masa lalu yang dapat kita hasilkan dalam daftar dan 46 00:03:46,780 --> 00:03:52,300 sekarang di sini kita memiliki dua cara untuk menghasilkan ini, dengan FlatList atau dengan tampilan gulir dan saya 47 00:03:52,300 --> 00:03:54,660 akan mulai lagi dengan tampilan gulir untuk itu. 48 00:03:54,730 --> 00:04:02,320 Jadi di sini di bawah kartu, saya akan menambahkan tampilan gulir dan untuk itu, Anda perlu mengimpor tampilan gulir dari Bereaksi Asli, jadi mari 49 00:04:02,320 --> 00:04:02,890 kita 50 00:04:03,010 --> 00:04:04,820 lakukan itu di sini, gulir 51 00:04:04,870 --> 00:04:10,060 tampilan, impor dari Bereaksi Asli dan output yang di bawah daftar sehingga ini adalah konten yang 52 00:04:10,420 --> 00:04:13,190 dapat digulir karena di sana, saya akan memiliki 53 00:04:13,210 --> 00:04:18,620 konten dinamis saya, saya akan menggunakan tebakan masa lalu saya dan memetakan ini ke dalam daftar komponen. 54 00:04:18,640 --> 00:04:20,550 Jadi di sini, saya akan 55 00:04:20,560 --> 00:04:26,140 meminta tebakan pribadi saya untuk mengatakan dan ini sekarang harus mengembalikan komponen di dalam fungsi peta ini 56 00:04:26,140 --> 00:04:32,350 dan komponen tebakan seperti itu bisa menjadi pandangan katakanlah, dengan teks di sana di mana saya hanya menampilkan tebakan 57 00:04:32,350 --> 00:04:39,880 itu, jadi di sini saya membuat tebakan ini saya dapatkan dan karena saya hanya menambahkan tebakan saya di sini langsung seperti ini ke array, 58 00:04:39,880 --> 00:04:45,670 tebakan yang saya miliki di sana hanya nomor tebakan dan saya hanya dapat output seperti ini di sini. 59 00:04:47,150 --> 00:04:53,600 Sekarang Anda mengetahui bahwa untuk item yang kami pemetaan seperti ini, Anda juga perlu menambahkan kunci dan 60 00:04:53,600 --> 00:04:57,340 kami bisa menggunakan tebakan kami di sini sebagai 61 00:04:57,350 --> 00:05:04,010 kunci jika kami akan dijamin unik tetapi dengan logika kami saat ini, sebenarnya tidak karena dalam logika 62 00:05:04,010 --> 00:05:11,300 kami saat ini, menghasilkan acak antara benar-benar menghasilkan angka acak baru di mana batas atas, nilai tinggi ini, dikecualikan 63 00:05:11,300 --> 00:05:17,190 tetapi batas bawah disertakan, sehingga kami bisa mendapatkan batas bawah ini sebagai nilai acak baru. 64 00:05:17,300 --> 00:05:23,660 Sekarang downside dari ini adalah bahwa di sini di mana kita menetapkan batas bawah baru kita, kita menetapkan 65 00:05:23,660 --> 00:05:30,020 ini untuk perkiraan saat ini yang berarti ini dapat diulang dalam angka acak masa depan dan kita benar-benar 66 00:05:30,020 --> 00:05:31,120 melihat ini 67 00:05:31,130 --> 00:05:37,010 dalam modul ini juga, kadang-kadang ada , komputer menebak sejumlah yang sudah menebak beberapa putaran sebelumnya. 68 00:05:37,070 --> 00:05:42,900 Ini bukan masalah besar tapi sekarang karena sekarang kita perlu tebakan kita dijamin, menjadi unik dan 69 00:05:43,190 --> 00:05:49,460 perbaikannya sederhana, kita bisa menambahkan satu di sini ketika kita menetapkan batas bawah baru kita karena dengan 70 00:05:49,460 --> 00:05:56,930 menambahkan satu di sini, kami memastikan bahwa batas bawah baru yang termasuk dalam generasi bilangan acak sebenarnya satu lebih tinggi 71 00:05:57,410 --> 00:06:01,270 dari perkiraan saat ini yang salah, kalau tidak kita tidak 72 00:06:01,280 --> 00:06:02,910 akan sampai di sini. 73 00:06:02,930 --> 00:06:09,020 Jadi sekarang kita sedang menetapkan batas bawah baru yang dapat dihasilkan di masa depan tetapi tidak kita 74 00:06:09,020 --> 00:06:09,950 hasilkan sebelumnya. 75 00:06:09,950 --> 00:06:13,100 Jadi ini adalah sedikit perbaikan dalam logika yang tidak 76 00:06:13,100 --> 00:06:18,560 ada salahnya dan itu sangat penting jika Anda berencana menggunakan tebakan sebagai kunci unik di sini. 77 00:06:18,640 --> 00:06:20,110 Maka dengan itu, mari 78 00:06:20,110 --> 00:06:21,670 kita lihat apakah itu berhasil. 79 00:06:21,730 --> 00:06:26,190 Mari kita simpan itu dan mari kita coba di sini di 80 00:06:26,190 --> 00:06:27,610 iOS, mulai permainan 81 00:06:27,750 --> 00:06:31,830 dan kita lihat tebakan awal kita, 57, itu tidak diformat 82 00:06:31,830 --> 00:06:37,890 dengan baik tetapi kita melihatnya di sini. Sekarang 57 terlalu tinggi, jika saya katakan lebih 83 00:06:37,920 --> 00:06:43,670 rendah, kita melihat tebakan baru di atas daftar dan saya berbohong di sana dan itu tampaknya berhasil. 84 00:06:43,740 --> 00:06:49,470 Sekarang tentu saja kita mendapatkan kesalahan ketika permainan selesai karena di sana, kami mencoba untuk mendapatkan putaran kami dan kami 85 00:06:49,980 --> 00:06:53,730 tidak mengelola ini sebagai keadaan lagi. Jadi kita harus 86 00:06:53,910 --> 00:06:56,590 memperbaikinya tetapi mengeluarkan daftar berfungsi. 87 00:06:56,670 --> 00:06:59,140 Sekarang mari kita perbaiki kesalahan putaran yang 88 00:06:59,160 --> 00:07:08,580 kita dapatkan, itu hanya datang dari useEffect di mana saya meneruskan putaran ke onGameOver. Di sana saya pada akhirnya perlu meneruskan jumlah putaran 89 00:07:08,580 --> 00:07:13,120 yang dibutuhkan komputer untuk menebak nomor kami. 90 00:07:13,140 --> 00:07:17,030 Sebelumnya kami memiliki variabel putaran di sini, keadaan bulat, sekarang kami 91 00:07:17,040 --> 00:07:23,010 hanya memiliki tebakan masa lalu yang merupakan array, jadi kami tidak dapat meneruskan tebakan masa lalu seperti ini 92 00:07:23,040 --> 00:07:24,660 karena pada permainan berakhir pada 93 00:07:24,660 --> 00:07:30,440 akhirnya membutuhkan angka tetapi tentu saja kami dapat meneruskan tebakan masa lalu yang hanya jumlah putaran yang 94 00:07:30,450 --> 00:07:31,520 dibutuhkan komputer. 95 00:07:31,530 --> 00:07:37,920 Maka dengan itu, jika kita melakukan ini, sekarang kita seharusnya benar-benar dapat menyelesaikan permainan dengan sukses. 96 00:07:37,980 --> 00:07:43,440 Jika kami memberikan ini coba cepat di sini dan menyelesaikan permainan, ya, 97 00:07:43,440 --> 00:07:44,900 itu berhasil. 98 00:07:45,030 --> 00:07:47,340 Jadi sekarang kita memiliki pekerjaan itu, sekarang 99 00:07:47,340 --> 00:07:51,750 mari kita menoleh ke arah tampilan gulir dan daftar item di sana lagi dan mari kita 100 00:07:51,750 --> 00:07:54,210 pastikan bahwa kita memiliki gaya yang tepat di sana.