Sekarang sebelum kita menyelesaikan modul ini, mari kita kembali ke beberapa daftar dan ke beberapa konten yang dapat digulir karena dalam
aplikasi ini, kita tidak memiliki konten seperti
itu sama sekali dan sebenarnya, sangat penting bagi Anda untuk memahami bagaimana bekerja dengan daftar
dan apa beberapa
kebiasaan khusus adalah ketika datang ke daftar. Jadi katakanlah di sini kita ingin mencatat tebakan
sebelumnya yang dibuat oleh komputer, kita ingin mencatatnya di bawah tombol plus dan minus kita di ruang kosong putih di sini.
Untuk itu, kita tentu saja perlu mendaftarkan setiap tebakan yang dibuat oleh komputer dan kemudian menampilkannya dalam daftar.
Jadi di layar game, mari kita mulai dengan mendaftarkannya.
Saat ini kami hanya menghitung putaran di
sini, namun tujuannya adalah agar kami tidak hanya menghitung putaran tetapi kami juga menyelamatkan putaran,
jadi kami menyimpan tebakan yang dibuat di setiap putaran dan
untuk mencapai itu di sini di putaran kami menyatakan, kita bisa mengelola array bukan angka dan saya akan memberi nama
tebakan masa lalu ini menjadi sangat jelas tentang apa yang ada di
sana dan oleh karena itu dinamakan set tebakan sebelumnya.
Jadi sekarang tujuannya adalah untuk menambahkan tebakan baru di sini ke susunan ini setiap kali kita menghasilkan angka acak
baru, jadi di sini di pengendali tebakan berikutnya. Di sana di mana kita mengatur putaran, alih-alih
mengatur putaran seperti ini yang tidak kita kelola lagi, kita harus menetapkan
tebakan masa lalu kita dan di sana kita perlu menggunakan tebakan sebelumnya dan benar-benar menambahkan tebakan baru di sini.
Sekarang untuk itu, kita dapat menggunakan formulir fungsi di sini di mana kita mendapatkan curPastGuesses yang sedikit nama yang aneh
tapi yang berarti bahwa ini adalah keadaan kita saat ini dan kami ingin memperbarui
itu atau keadaan terakhir kami tepatnya dan kami ingin memperbarui itu dan kami ingin memperbaruinya dengan mengembalikan array baru
yang akan menjadi keadaan baru kami dan tentu saja harus memperhitungkan tebakan masa lalu kami
saat ini dan kemudian menambahkan tebakan baru di sana.
Sekarang kita bisa menambahkan tebakan baru di akhir daftar itu atau di awal dan saya
benar-benar akan menambahkannya di awal sehingga tebakan terbaru kita selalu di bagian atas daftar ketika nanti kita merendernya
ke layar .
Jadi di sini, kita dapat menambahkan angka berikutnya yang merupakan perkiraan baru kita saat ini yang sedang kita hasilkan di sini
dan itulah yang harus kita tambahkan di sini sebagai sebuah item, bukan? Dengan itu, kami menambahkan item baru ke array ini dengan setiap tebakan.
Sekarang jangan lupa bahwa kita juga mulai dengan tebakan,
kita menghasilkan tebakan awal di sini, saya
ingin memulai dengan tebakan itu dalam daftar dan oleh karena itu, kita harus menambahkannya ke
daftar di sini, jadi saya akan mengekstraknya dari fungsi penggunaan negara kita panggil di sini dan buat tebakan awal, konstan awal
yang merupakan angka yang dihasilkan secara acak ini dan sekarang tebakan awal ini yang saya tambahkan di sini untuk menggunakan keadaan dan
juga tebakan awal yang saya tambahkan sebagai elemen pertama pada array di tebakan kami di masa lalu,
gunakan inisialisasi negara.
Sekarang jangan lupa bahwa gunakan status karena semua kode ini di sini tentu saja tayang ulang setiap kali komponen ini
dirender ulang tetapi cara penggunaan keadaan berfungsi sedemikian rupa sehingga Bereaksi mendeteksi bahwa keadaan untuk komponen ini telah
diinisialisasi,
sehingga hanya akan mengatur nyatakan dugaan awal ini untuk pertama kali komponen ini dirender dan bukan
untuk render berikutnya. Memang memang,
dugaan awal ini akan diciptakan kembali tetapi itu tidak akan benar-benar digunakan karena penanganan keadaan
yang terpisah di mana React mengetahui bahwa kita sudah memiliki keadaan.
Jadi dengan itu, kami menginisialisasi ini, kami juga memulai tebakan kami di daftar itu dan kami menambahkan tebakan
baru ke daftar di bagian bawah di sini. Dengan semua itu, kita harus memiliki
beberapa tebakan masa lalu yang dapat kita hasilkan dalam daftar dan
sekarang di sini kita memiliki dua cara untuk menghasilkan ini, dengan FlatList atau dengan tampilan gulir dan saya
akan mulai lagi dengan tampilan gulir untuk itu.
Jadi di sini di bawah kartu, saya akan menambahkan tampilan gulir dan untuk itu, Anda perlu mengimpor tampilan gulir dari Bereaksi Asli, jadi mari
kita
lakukan itu di sini, gulir
tampilan, impor dari Bereaksi Asli dan output yang di bawah daftar sehingga ini adalah konten yang
dapat digulir karena di sana, saya akan memiliki
konten dinamis saya, saya akan menggunakan tebakan masa lalu saya dan memetakan ini ke dalam daftar komponen.
Jadi di sini, saya akan
meminta tebakan pribadi saya untuk mengatakan dan ini sekarang harus mengembalikan komponen di dalam fungsi peta ini
dan komponen tebakan seperti itu bisa menjadi pandangan katakanlah, dengan teks di sana di mana saya hanya menampilkan tebakan
itu, jadi di sini saya membuat tebakan ini saya dapatkan dan karena saya hanya menambahkan tebakan saya di sini langsung seperti ini ke array,
tebakan yang saya miliki di sana hanya nomor tebakan dan saya hanya dapat output seperti ini di sini.
Sekarang Anda mengetahui bahwa untuk item yang kami pemetaan seperti ini, Anda juga perlu menambahkan kunci dan
kami bisa menggunakan tebakan kami di sini sebagai
kunci jika kami akan dijamin unik tetapi dengan logika kami saat ini, sebenarnya tidak karena dalam logika
kami saat ini, menghasilkan acak antara benar-benar menghasilkan angka acak baru di mana batas atas, nilai tinggi ini, dikecualikan
tetapi batas bawah disertakan, sehingga kami bisa mendapatkan batas bawah ini sebagai nilai acak baru.
Sekarang downside dari ini adalah bahwa di sini di mana kita menetapkan batas bawah baru kita, kita menetapkan
ini untuk perkiraan saat ini yang berarti ini dapat diulang dalam angka acak masa depan dan kita benar-benar
melihat ini
dalam modul ini juga, kadang-kadang ada , komputer menebak sejumlah yang sudah menebak beberapa putaran sebelumnya.
Ini bukan masalah besar tapi sekarang karena sekarang kita perlu tebakan kita dijamin, menjadi unik dan
perbaikannya sederhana, kita bisa menambahkan satu di sini ketika kita menetapkan batas bawah baru kita karena dengan
menambahkan satu di sini, kami memastikan bahwa batas bawah baru yang termasuk dalam generasi bilangan acak sebenarnya satu lebih tinggi
dari perkiraan saat ini yang salah, kalau tidak kita tidak
akan sampai di sini.
Jadi sekarang kita sedang menetapkan batas bawah baru yang dapat dihasilkan di masa depan tetapi tidak kita
hasilkan sebelumnya.
Jadi ini adalah sedikit perbaikan dalam logika yang tidak
ada salahnya dan itu sangat penting jika Anda berencana menggunakan tebakan sebagai kunci unik di sini.
Maka dengan itu, mari
kita lihat apakah itu berhasil.
Mari kita simpan itu dan mari kita coba di sini di
iOS, mulai permainan
dan kita lihat tebakan awal kita, 57, itu tidak diformat
dengan baik tetapi kita melihatnya di sini. Sekarang 57 terlalu tinggi, jika saya katakan lebih
rendah, kita melihat tebakan baru di atas daftar dan saya berbohong di sana dan itu tampaknya berhasil.
Sekarang tentu saja kita mendapatkan kesalahan ketika permainan selesai karena di sana, kami mencoba untuk mendapatkan putaran kami dan kami
tidak mengelola ini sebagai keadaan lagi. Jadi kita harus
memperbaikinya tetapi mengeluarkan daftar berfungsi.
Sekarang mari kita perbaiki kesalahan putaran yang
kita dapatkan, itu hanya datang dari useEffect di mana saya meneruskan putaran ke onGameOver. Di sana saya pada akhirnya perlu meneruskan jumlah putaran
yang dibutuhkan komputer untuk menebak nomor kami.
Sebelumnya kami memiliki variabel putaran di sini, keadaan bulat, sekarang kami
hanya memiliki tebakan masa lalu yang merupakan array, jadi kami tidak dapat meneruskan tebakan masa lalu seperti ini
karena pada permainan berakhir pada
akhirnya membutuhkan angka tetapi tentu saja kami dapat meneruskan tebakan masa lalu yang hanya jumlah putaran yang
dibutuhkan komputer.
Maka dengan itu, jika kita melakukan ini, sekarang kita seharusnya benar-benar dapat menyelesaikan permainan dengan sukses.
Jika kami memberikan ini coba cepat di sini dan menyelesaikan permainan, ya,
itu berhasil.
Jadi sekarang kita memiliki pekerjaan itu, sekarang
mari kita menoleh ke arah tampilan gulir dan daftar item di sana lagi dan mari kita
pastikan bahwa kita memiliki gaya yang tepat di sana.