Halo dan selamat datang.
Saya ingin memberikan demonstrasi solusi untuk
tantangan kami sebelumnya yang mengimplementasikan permainan tebak-tebakan dan tipe angka.
Jadi mari kita memunculkan kode blok, tutup
proyek saya saat ini dan buat yang baru.
Proyek baru ini saya baru saja pergi untuk memanggil permainan tebak angka.
Ini akan menjadi aplikasi konsol.
Jadi saya hanya akan sebut saja tebak nomornya.
Dan apa yang akan saya lakukan di ini untuk memulai proyek ini saya akan
mendeklarasikan variabel saya.
Saya selalu suka menyatakan dan itu variabel saya di atas.
Tapi saya juga akan menggunakan pembangkit bilangan acak.
Jadi saya ingin memastikan itu Saya memiliki beberapa termasuk.
Stdlib sudah ada secara default.
Jadi yang perlu saya lakukan hanyalah menambahkan saya waktu. h karena sekali lagi ini untuk generator
nomor acak.
Ini pada dasarnya untuk kursi generator nomor acak.
Variabel lain yang saya akan perlu dalam program ini adalah saya
ingin menyimpan nomor acak saya.
Jadi saya hanya akan mengatakan nomor acak, saya akan menginisialisasi itu ke
0 sampai saya mendapatkannya dari perpustakaan yang sebenarnya.
Jadi nyatakan inisialisasi.
Saya akan membuat variabel untuk simpan tebakan dari pengguna, dan
saya akan menginisialisasinya dengan 0.
Saya akan membuat variabel lain yang akan menjadi
jumlah tebakan, jumlah saat ini tebakan atau sebenarnya saya
harus mengatakan jumlah tebakan maksimum, maksimum jumlah tebakan, dan saya akan menginisialisasi ini menjadi 5 karena
mereka hanya bisa menebak 5 kali.
Saya juga harus membuat waktu variabel sehingga saya dapat menggunakannya untuk
generator nomor acak saya.
Jadi saya hanya akan mengatakan waktu t t.
Hal pertama yang ingin saya lakukan sebelum saya minta masukan kepada pengguna apakah
saya ingin menghasilkan nomor acak.
Saya kira saya bisa melakukan ini setelah bertanya pengguna untuk input tetapi mudah untuk melakukan
hal pertama yang Anda lakukan.
Jadi saya akan menginisialisasi saya generator nomor acak, saya akan memberikan
sedikit komentar di sana.
Pastikan Anda menggunakan makna yang baik nama dan pastikan Anda indent.
Ini akan menggunakan fungsi srand itu yang saya bicarakan dalam kuliah.
Anda hanya bisa melewatinya dalam biji pada dasarnya.
Jadi saya akan mengatakan tidak ditandatangani, dan saya akan hanya melewati variabel t saya.
Ini akan mendapatkan waktu adalah fungsi yang mendapatkan waktu saat ini.
Saya akan lulus di t sehingga benih itu dan kemudian saya akan mengakhirinya.
Sekarang saya benar-benar perlu mendapatkan generator nomor acak, jadi saya akan
mengatakan dapatkan nomor acak.
Dan semua ini akan dilakukan adalah menetapkan variabel ke apa yang
dikembalikan dari fungsi Rand.
Jadi katakanlah nomor acak yang apakah variabel lokal saya
sama dengan dan menggunakan operator penugasan say rand yang memanggil fungsi.
Anda tidak perlu tahu semua ini, tapi saya akan menyemai dengan 21.
Ini akan memastikan bahwa saya acak jumlahnya hanya antara 0 dan 20.
Sekarang saya hanya akan mengeluarkan a beberapa pesan ke layar sehingga pengguna tahu
apa yang mereka lakukan.
Jadi saya akan membuat aplikasi cetak dan saya akan mengatakan ini adalah permainan menebak.
Dan kemudian saya akan juga beri tahu mereka
bahwa saya telah memilih angka antara 0 dan 20 lagi, hanya agar mereka diberitahu.
Dan kemudian 0 dan 20 yang Anda harus tebak dan akhiri dengan umpan baris.
Sekarang setelah saya memberi tahu mereka apa yang saya inginkan dalam permainan, saya akan
benar-benar mulai mengulang.
Dan saya akan mengulang sampai saya jumlah tebakan sama dengan 5.
Jadi apa yang sebenarnya saya lebih suka lakukan adalah saya ingin menghapus jumlah
tebakan saya di sini, tapi Saya tidak ingin menginisialisasi.
Saya ingin menginisialisasi di loop saya hanya untuk menunjukkan bahwa saya bisa melakukan itu.
Jika saya melakukan inisialisasi di sana, sebelum titik koma pertama di for loop, saya
bisa membiarkannya kosong.
Jadi misalnya saya bisa melakukan sesuatu seperti ini, inisialisasi di sini.
Dan kemudian di for loop saya, saya akan cukup beri tanda titik koma karena
saya tidak perlu melakukan inisialisasi.
Karena ingat, dalam perulangan for kita, hal
pertama yang Anda miliki sebelum titik koma adalah inisialisasi dari variabel kontrol loop.
Saya sudah menginisialisasinya jadi saya tidak perlu melakukannya,
tetapi saya tidak ingin melakukan itu.
Saya hanya akan menyatakan itu di sini, dan saya akan
menginisialisasi di sini.
Saya akan mengatakan maksimal jumlah tebakan sama dengan 5.
Itu variabel kontrol loop saya, Saya akan menginisialisasinya.
Aku akan melompat keluar dari loop jika jumlah tebakan
maksimum saya tercapai.
Jadi di sini saya akan mengatakan sebenarnya saya akan menulis dengan cara yang berbeda.
Saya akan menulisnya agar loop berjalan dari 5 ke 0.
Jadi jumlah maksimum saya sama dengan 5.
Akan lebih baik untuk ganti nama variabel ini.
Mari kita ganti namanya dan sebutkan jumlah tebakan
Dan jumlah tebakan akan dimulai sebagai 5.
Dan aku akan membuat ini mundur.
Dan ketika jumlah tebakannya adalah 0, saya ingin melompat keluar dari lingkaran.
Jadi kondisi keluar loop saya, Saya akan mengatakan jumlah tebakan lebih
besar dari 0.
Lihat apa yang saya lakukan di sini.
Saya hanya akan melompat keluar dari loop jika saya tidak punya tebakan lagi.
Jadi jika saya lebih besar dari 0, saya akan tetap berada di dalam lingkaran.
Dan kemudian hal terakhir yang saya inginkan sediakan di for loop setelah
titik dua iklim kedua adalah modifikasi variabel kontrol loop itu.
Jadi saya hanya akan melakukan dikurangi dikurangi jumlah tebakan.
Dan apa yang harus Anda perhatikan dalam loop for ini
adalah saya memulai ... Saya hampir mundur.
Saya mulai dari 5 dan saya akan ke 0.
Untuk semua contoh yang kami berikan di kuliah, kita mulai dari 0 dan kita naik.
Tapi Anda bisa melakukan keduanya, itu tidak masalah.
Anda masih mengulangi di sini 5 kali.
Sekarang saya ingin menampilkan pesan yang memberi tahu mereka
berapa banyak percobaan yang tersisa.
Jadi saya akan mengatakan printf, dan sebenarnya saya akan memasukkan operator ternary
di sini karena kami belum menggunakannya.
Tidak perlu melakukannya dengan cara ini, tapi saya akan melakukannya dengan cara ini
hanya untuk menunjukkan kepada Anda bagaimana Anda dapat menggunakan operator ternary.
Jadi di sini saya akan mencetak Anda memiliki persen d mencoba persen s tersisa.
Persen d akan menjadi jumlah tebakan yang sama dan tr persen
s, itu akan berubah.
Itu akan dicoba atau akan dicoba.
Jadi aku akan berubah apa yang ditampilkan berdasarkan berapa
banyak tebakan yang tersisa.
Jika jumlah tebakan sama dengan 1.
Saya tidak ingin merencanakan percobaan, satu coba dibiarkan, itu tidak masuk akal.
Saya ingin mencetak satu percobaan.
Jadi di sini saya akan menggunakan operator termitary atau lebih
tepatnya operator kondisional.
Saya akan mengatakan jika jumlah tebakan sama dengan 1, lalu atur jumlah tebakan sama dengan
y jika tidak, atur ke IES.
Dan saya akan mencetaknya itu apa yang dilakukan persen s, apa pun
yang dikembalikan di sini.
Jadi ini akan kembali baik a y an IES dan menampilkan informasi yang
benar.
Jadi saya hanya melakukan itu hanya untuk menjadi sedikit mewah
menunjukkan kepada Anda bagaimana Anda dapat menggunakan terminal, cetak keluar informasi yang benar.
Setelah saya mencetak nomornya dari percobaan terakhir, maka saya ingin memberitahu
mereka untuk memasukkan tebakan.
Jadi saya akan tahan dengan
beberapa informasi dan katakan saja printf cukup masukkan tebakan dan ini akan memiliki umpan baris.
Jadi masukkan tebakan, lalu aku pergi untuk membaca tebakan itu menggunakan scanf, kita tahu cara membaca
dari keyboard.
Ini akan menjadi bilangan bulat, jadi saya akan melakukan persen d dan saya akan
memasukkannya ke dalam variabel tebakan.
Jadi saya perlu menggunakan ampersand.
Sekarang saya harus melakukan pemeriksaan saya.
Saya harus memeriksa apakah tebakan itu Saya yang saya khawatirkan.
Jadi di sini kita punya kondisi keluar lainnya.
Saya akan menggunakan pernyataan if.
Saya akan mengatakan jika saya tebakan sama dengan nomor acak saya, apa yang ingin
saya lakukan?
Nah, pertama saya ingin mencetak keluar dan memberitahu mereka bahwa
mereka menebak dengan benar.
Jadi saya akan mencetak, selamat, Anda telah menebaknya.
Apa lagi yang ingin saya lakukan? jika mereka menebak dengan benar?
Saya ingin keluar dari lingkaran.
Jadi bagaimana saya bisa keluar dari loop?
Aku bisa istirahat.
Aku bisa istirahat, itu akan melompat keluar dari lingkaran saya.
Sekarang jika tidak sama, jadi Saya ingin menambahkan yang lain jika.
Jika tidak sama, saya ingin memeriksa pastikan mereka memvalidasi nomor tersebut.
Jadi sebelum aku bilang kamu bisa loop bersarang untuk validasi sehingga mereka masuk
lagi, Anda tidak perlu melakukan itu, Anda hanya dapat
memiliki pernyataan f.
Jadi di sini saya ingin memvalidasi nomor tersebut.
Jika tidak sama dengan nomor acak,
saya ingin memastikan itu antara 0 dan 20.
Jadi jika tebakannya kurang dari 0 atau kami menggunakan operator
logika atau 2 batang paralel atau tebakannya adalah lebih besar dari 20 yang pada
dasarnya memeriksa tebakan yang tidak valid.
Jika itu masalahnya dan saya tidak akan menggunakan tanda kurung karena saya hanya punya
satu pernyataan di sini, tanda kurung adalah opsional jika Anda hanya
memiliki satu pernyataan.
Jadi jika mereka memasukkan tebakan yang tidak valid, semua yang akan saya lakukan adalah printf.
Saya akan mencetak saya berkata angkanya antara 0 dan 20.
Dan apa yang akan terjadi di sini bukanlah apa-apa.
Itu hanya akan dicetak yang keluar dan
itu akan pergi ke iterasi berikutnya.
Ini akan memberi tahu mereka caranya banyak mencoba mereka telah meninggalkan dan
itu akan masuk menebak.
Sekarang jika Anda tidak ingin valid angka jika mereka memasukkan
angka yang valid untuk tidak dihitung sebagai tebakan, maka Anda dapat memiliki loop bersarang.
Tetapi jika mereka memasuki sesuatu yang 25, itu masih akan dihitung sebagai tebakan.
Jadi saya hanya mengatakan saya menetapkan bilangan antara 0 dan 20.
Jika mereka memasukkan nomor yang valid tapi itu tidak benar, itu
adalah klausa else.
Di sini, saya hanya akan mengatakan, maaf, salah nomor, dan saya akan memberi tahu mereka
apakah itu lebih besar dari atau lebih rendah dari.
Dan saya bisa menggunakan ternary operator di sini, tapi saya tidak akan melakukannya.
Jadi mari tambahkan if di sini juga.
Lain jika acak lebih besar dari coba tebak, lalu apa yang ingin saya cetak?
Saya ingin mencetak maaf persen d adalah salah, persen d akan menjadi tebakan mereka.
Nomor saya adalah persen s adalah kata pertama.
Jika acak lebih besar, nomor saya lebih besar.
Jumlah saya lebih besar dari itu, dan saya
tidak menggunakan persentil apa pun dan saya hanya memiliki umpan baris.
Lain jika nomor acak kurang dari tebakan, maka saya ingin memberi tahu mereka bahwa itu lebih
rendah.
Jadi saya bisa menyalin dan menempelkan hal yang sama.
Saya bisa minta maaf, nomornya salah, nomor saya kurang dari itu.
Dan lagi, Anda sebenarnya bisa menempatkan 2 ifs lain ini.
Anda bisa memiliki yang lain jika
dan Anda sebenarnya bisa membuat pernyataan bersyarat di sini.
Anda bisa memiliki operator ternary, tapi saya akan menggunakan 2 ifs lain dan mengatakan itu
kurang dari itu.
Dan kemudian itu akan menjadi itu, itu akan mengakhiri loop.
Dan jika kita keluar dari lingkaran dan kami tidak menebak dengan benar
dan kami melebihi jumlah percobaan kami, maka saya hanya akan memberi tahu mereka
bahwa mereka memiliki 5 percobaan dan mereka tidak menebak nomornya dan saya akan memberi
tahu mereka nomornya.
Jadi keluaran terakhir kepada pengguna untuk diceritakan mereka bahwa mereka tidak memenangkan permainan dan memberi
tahu mereka berapa nomornya.
Jadi Anda telah mencoba 5 kali dan gagal, nomor itu adalah nomor acak.
Oke, jadi apakah itu masuk akal?
Kami melakukan banyak hal di sini.
Kami menggunakan pernyataan if, else pernyataan dalam satu lingkaran dan kami menerapkan
permainan angka.
Dan kemudian hal terakhir adalah kita kembali dari fungsi utama.
Jadi mari kita lanjutkan dan kompilasi dan apa yang seharusnya
Anda lakukan selama latihan ini?
Anda seharusnya menguji dan bekerja dalam potongan kecil.
Anda mungkin harus memiliki mulai bekerja dulu,
dapatkan nomor acak untuk bekerja kemudian menguji dan menyusun dan menguji.
Kemudian mulai lingkaran Anda.
Pastikan loop Anda hanya berjalan jumlah tebakan, maksimal 5 kali dan kemudian buat
itu berfungsi dan diuji.
Kemudian tanyakan jawaban pengguna beberapa informasi, buat itu berfungsi
dan uji.
Kemudian bandingkan dengan kapan harus keluar jika mereka menebak dengan benar, menguji dan kemudian menulis
pernyataan if Anda tes, itulah bagaimana saya akan menerapkan.
Jadi mari kita membangun ini dan lihat apakah itu dikompilasi.
Mudah-mudahan, saya tidak melakukan kesalahan.
Saya akan mengatakan membangun.
Saya memiliki kesalahan, saya memiliki nomor yang tidak valid.
Itu harus nomor acak, tidak acak karena itulah
nama variabel saya.
Dan kali ini aku punya 0 kesalahan 2 peringatan.
Saya punya persen d mengharapkan beberapa int yang cocok.
Saya lupa untuk mematikannya nomor acak atau tebakan.
Tebakan di sini dan tebak dan yang lainnya.
Saya ingin memberi tahu mereka bahwa tebakan mereka maaf tebakan salah, tidak harus melakukan
ini, tetapi hanya sedikit hal yang menyenangkan.
Sekarang mari kita membangunnya karena Anda selalu ingin memperbaiki peringatan Anda.
Anda ingin memiliki 0 peringatan 0 kesalahan.
Sekarang ketika kita menjalankan ini, kita harus menguji.
Dan ada banyak tes yang berbeda kasus yang ingin Anda jalankan di sini.
Anda ingin menjalankan beberapa tes kasus karena ingat tidak pernah baik untuk
hanya menguji satu hal.
Jadi di sini dikatakan ini adalah tebakan permainan, saya telah
memilih angka antara 0 dan 20, yang harus Anda tebak, Anda memiliki 5 percobaan tersisa.
Jadi saya akan memasukkan 16.
Maaf, 16 salah, jumlahnya kurang dari itu.
Saya akan mencoba memilikinya 8.
8 salah, kurang dari itu.
Saya akan melakukan 4.
4 salah, nomor saya lebih besar dari itu.
Oh saya membuat kesalahan, saya tidak membaca itu dulu.
Jadi lebih besar dari 8.
Mari kita coba 12.
Saya hanya punya 2 percobaan tersisa.
Saya kira benar dengan 12.
Jadi ada ucapan selamat.
Tetapi Anda juga ingin menguji sebuah kegagalan.
Anda ingin menguji beberapa hal di sini, tapi di sini biarkan aku menguji dan
aku akan mengatakan tebakanku dan Saya hanya akan memasukkan 0.
0 salah.
Saya akan terus memasukkan 0, dan di sana saya kira 5 kali saya salah.
Dikatakan Anda telah 5 percobaan dan gagal.
Nomor yang kamu ingin menebak adalah 3.
Jadi itu berhasil.
Sekarang mari kita uji untuk memastikan apa terjadi jika kita memasukkan nomor yang tidak valid.
jika saya masuk 45.
Saya mengatakan nomor 0 dan 20.
Jadi itu kasus ujian lainnya dan itu dihitung sebagai percobaan.
Jika saya tidak ingin akun itu sebagai coba, itu bisa memiliki loop bersarang.
Saya pikir itu saja.
Kami telah menguji semua kasus.
Kami menguji kasus di mana Anda berhasil menebak.
Kami telah menguji kasus di mana Anda tidak berhasil menebak.
Dan kami menguji kasus di mana Anda memasukkan nomor yang tidak valid.
Mungkin satu-satunya tes lain adalah adalah untuk memastikan bahwa itu mengatakan lebih besar dari dan lebih rendah dari, yang saya pikir kami uji
pada yang pertama benar-benar akan memberi tahu kami untuk
masuk lebih rendah atau lebih besar dari.
Jadi mari kita coba itu.
Jadi kali ini ketika saya memasuki 20, dikatakan kurang dari mana yang baik.
Sekarang saya akan masuk 10 dan saya menebaknya.
Jadi saya kira mereka cepat.
Tapi kita harus melihat kurang dari dan lebih besar dari pada output yang sama.
Coba lagi, dan acak nomor berfungsi karena saya menghasilkan nomor yang
berbeda setiap kali saya menjalankan program.
20 salah.
Sekarang mari kita coba 19.
Mari kita coba 1 dan itu lebih besar dari itu.
Jadi saya melihat lebih besar dan lebih kecil dari.
Jadi saya cukup yakin itu berhasil.
Terlihat cukup bagus untukku.
Satu hal yang seharusnya kamu perhatikan ada sedikit bug dalam
program saya sedang menguji Anda.
Jadi ketika Anda menjalankannya karena kami memiliki istirahat ini di sini, masih akan
mencetak bahwa saya gagal meskipun ketika saya berhasil.
Jadi kamu seharusnya memperhatikan bahwa pada output sebelumnya, saya
kira nomor yang tepat.
Itu dicetak ucapan selamat.
Tapi kemudian itu juga dicetak I gagal, itu sepertinya tidak benar.
Jadi cara untuk memperbaikinya adalah kamu tidak memiliki terobosan, Anda
ingin memiliki pengembalian.
Dan sekarang ketika itu kembali itu
tidak akan dicetak pada baris 39 jika Anda menang.
Itu tidak akan dicetak bahwa Anda gagal.
Jadi satu tes terakhir dan Anda harus telah menangkap ini sebelumnya,
tetapi ketika kami membangun dan kami menebak dengan benar, itu tidak akan menampilkan kesalahan.
Jadi kita bisa menghemat lari dan kapan kita jalankan yang ini, Anda memiliki 5 tebakan.
Saya akan mengatakan 10, kurang dari itu.
Kami akan mengatakan 6, dan saya menebaknya.
Dan Anda akan melihat di sana itu mengucapkan selamat.
Kami tidak melihat output tambahan itu yang mengatakan saya juga gagal.
Jadi Anda ingin memastikan Anda tambahkan pengembalian itu pada baris 30
agar program berjalan dengan benar.
Anda dapat menambahkan pernyataan if lainnya jika Anda ingin
agar tidak mencetak printf, bisa saja istirahat di sini dan kemudian di
printf Anda bisa memeriksa berapa banyak tebakan hitungan Anda juga harus menentukan apakah itu
kurang dari 5 maka selamat.
Tapi ada sedikit bug di sana, dan semoga
Anda memperhatikannya dalam pengujian, pengembaliannya akan memperbaikinya.
Jadi program kecil yang rapi.
Saya harap ini membantu Anda belajar banyak tentang perulangan dan
semua pernyataan keputusan Anda dan benar-benar memecahkan masalah.
Semoga, Anda mengeluarkan ini dan merancang ini sebelum Anda
benar-benar mulai menulis kode, itu selalu penting.
Semoga ini membantu.
Saya akan memberikan kode sumber sehingga Anda dapat membandingkannya dan melihat dan menganalisisnya.
Terima kasih.