Lompat ke isi utama

Pelajaran 2: Pernyataan Kondisional If/Else

Dalam Pelajaran ini, Anda akan membuat proyek di mana Robot VR merobohkan setidaknya dua bangunan di Dynamic Castle Crasher Playground. Suatu algoritma akan dibutuhkan untuk memecahkan tantangan tersebut menggunakan loop dan umpan balik sensor karena tata letak Taman Bermain berubah setiap kali pengaturan ulang.

Contoh Tata Letak Taman Bermain Castle Crasher yang Dinamis:

Tiga tampilan atas-bawah dari contoh tata letak Dynamic Castle Crasher Playground dengan robot pada posisi awal yang sama dan kastil pada posisi yang berbeda. Tata letaknya berdampingan, untuk menekankan bagaimana kastil berubah posisi setiap kali Taman Bermain diatur ulang.

Hasil belajar

  • Identifikasi bahwa blok [If then else] adalah blok C yang menjalankan blok di dalam cabang If atau Else berdasarkan nilai Boolean yang dilaporkan.
  • Identifikasi bahwa blok [If then else] biasanya digunakan dengan blok [Repeat] atau [Forever] untuk memeriksa kondisi lebih dari sekali.
  • Identifikasi dan jelaskan mengapa blok [If then else] digunakan dengan loop.
  • Jelaskan apa yang menyebabkan cabang [If then else] dijalankan dalam suatu proyek.

Cara Menggunakan Blok [If then else]

Tantangan ini berbeda dari tantangan Castle Crasher di Unit 2. Tantangan Unit 2 menggunakan urutan sederhana dan perintah Drivetrain untuk merobohkan bangunan di taman bermain statis.

Contoh proyek VEXcode VR dari Unit 2. Proyek diawali dengan blok Saat dimulai dan memiliki 6 blok terlampir. Blok-blok tersebut berbunyi, secara berurutan, Atur kecepatan berkendara ke 100%; Atur kecepatan berbelok ke 100%; melaju ke depan sejauh 1550 mm; belok kanan sejauh 180 derajat; melaju ke depan sejauh 700 mm; lalu belok kanan sejauh 90 derajat.

Perintah drivetrain saja tidak akan cukup untuk membuat Robot VR merobohkan dua atau lebih bangunan karena tata letak Dynamic Castle Crasher Playgroundyang berubah. Seperangkat perintah Drivetrain mungkin berfungsi di satu Playground, tetapi tidak di Playground lain. Suatu algoritma yang menggunakan sensor dan seleksi akan dibutuhkan. Blok [If then else] akan digunakan untuk membuat algoritma dengan menambahkan pilihan dengan pernyataan kondisional ke proyek ini.

Tampilan atas ke bawah dari Dynamic Castle Crasher Playground dengan hanya beberapa kastil yang roboh, dan yang lainnya tidak tersentuh, untuk menggambarkan bagaimana perintah drivetrain saja tidak cukup ketika posisi kastil berubah secara acak.

Ada dua langkah utama bagi Robot VR untuk merobohkan bangunan di Dynamic Castle Crasher Playground.

  1. Jika Robot VR mendeteksi bangunan kastil, gerakkan robot ke arah kastil tersebut untuk menjatuhkannya.
    1. Tidak seperti Playground lainnya, Playground Dynamic Castle Crasher tidak memiliki dinding. Karena bangunan adalah satu-satunya objek di Dynamic Castle Crasher Playground, Sensor Jarak dapat digunakan untuk mendeteksi bangunan.

      Tampilan atas ke bawah Dynamic Castle Crasher Playground dengan robot di posisi awal, di bagian tengah bawah tata letak, dengan panah putus-putus yang menunjuk ke kastil tepat di depan robot yang disorot dalam kotak merah. Panah menunjukkan bahwa sensor dapat mendeteksi kastil sebagai objek di depannya.
  2. Jika Robot VR tidak mendeteksi bangunan kastil, putar balik dan periksa kembali bangunan kastil.
    1. Karena bangunan merupakan satu-satunya objek pada Dynamic Castle Crasher Playground, Sensor Jarak dapat digunakan untuk mendeteksi bangunan kastil.

      Tampilan atas ke bawah dari Dynamic Castle Crasher Playground, dengan robot pada posisi awal, dan tanda panah melengkung pada kedua sisinya, yang menunjukkan perlunya berputar hingga objek kastil terdeteksi.

Setelah langkah 1 dan 2 selesai, Robot VR dapat kembali ke langkah 1 dan menggunakan Sensor Jarak untuk menemukan bangunan berikutnya yang akan dirobohkan.

  • Mulai proyek baru di VEXcode VR dan beri nama proyek Unit9Lesson2.

    Kotak nama proyek di tengah Toolbar VEXcode VR disorot dengan kotak merah, di sebelah kiri tombol Pilih Taman Bermain. Nama proyeknya adalah Unit 9 Pelajaran 2.
  • Tambahkan dua blok [Komentar] ke dalam ruang kerja dan isi langkah-langkah yang diuraikan di atas.

    Proyek VEXcode VR baru dengan dua blok Komentar yang dilampirkan ke blok Saat dimulai. Komentar dibaca secara berurutan: Jatuhkan bangunan yang ditemukan menggunakan Sensor Jarak; dan Putar untuk menemukan bangunan menggunakan Sensor Jarak.
  • Blok [If then else] dapat digunakan untuk memicu setiap tindakan yang diuraikan di atas. Setiap tindakan bergantung pada apakah kondisi Boolean di blok [If then else] melaporkan TRUE atau FALSE. Tambahkan blok [If then else] di bawah blok [Comment].

    Proyek VEXcode VR yang sama dengan blok If then else yang dilampirkan di bawah komentar kedua. Parameter cabang If dibiarkan terbuka.

    Untuk Informasi Anda

    Blok [If then else] adalah blok C yang menerima blok reporter Boolean sebagai masukan. Blok [If then else] adalah pernyataan kondisional yang mengendalikan aliran suatu proyek. Blok [If then else] akan mengeksekusi serangkaian instruksi tertentu jika kondisinya terpenuhi, dan serangkaian instruksi lain jika kondisinya TIDAK terpenuhi, sehingga aliran proyek menjadi 'cabang'. Hanya satu cabang di [If then else] yang akan dieksekusi.

    Blok If then else dari VEXcode VR Toolbox.
    • Jika kondisi dilaporkan sebagai TRUE, blok di dalam cabang If Then dijalankan.
    • Jika kondisi dilaporkan sebagai FALSE, blok di dalam cabang Else dijalankan.
    Proyek VEXcode VR digunakan untuk mengilustrasikan fungsi setiap cabang blok If then else. Dalam proyek ini blok If then else dilampirkan ke When started dan berbunyi If Front Distance found an object, then Comment - Runtuhkan bangunan yang ditemukan menggunakan Sensor Jarak dan maju terus; Jika tidak, Belok untuk menemukan bangunan menggunakan Sensor Jarak, dan Belok kanan. Cabang 'Jika maka' diberi label Maju terus jika Sensor Jarak mendeteksi suatu objek. Cabang 'Else' diberi label Belok kanan jika sensor jarak tidak mendeteksi objek.

    Setelah semua blok di dalam salah satu cabang dijalankan, proyek akan berpindah ke blok berikutnya di luar blok [If then else].

  • Dalam proyek ini, Sensor Jarak dapat digunakan untuk mendeteksi bangunan di Taman Bermain. Tambahkan blok <Distance found object> ke blok [If then else].

    Proyek VEXcode VR yang sama dari sebelumnya, dengan blok objek Distance Found yang ditambahkan sebagai parameter cabang If then. Blok Jika maka sekarang terbaca Jika Jarak Depan menemukan suatu objek maka.

    Untuk Informasi Anda

    Blok <Distance found object> adalah blok reporter Boolean yang melaporkan jika Sensor Jarak telah menemukan objek di depan Robot VR. Blok ini melaporkan BENAR ketika ada objek atau permukaan dalam jarak 3000 milimeter (mm) dari Robot VR.

    Jarak objek yang ditemukan Blok VR VEXcode dari Kotak Alat yang bertuliskan Jarak Depan menemukan objek?
  • Sekarang setiap cabang blok [If then else] perlu didefinisikan menggunakan komentar yang dibuat di awal proyek. Ketika blok <Distance found object> melaporkan BENAR, Robot VR harus melaju ke arah gedung itu untuk menjatuhkannya. Pindahkan blok [Komentar] ke cabang 'Jika Maka' dalam proyek.

    Proyek VEXcode VR yang sama dengan Komentar pertama dipindahkan ke dalam C cabang If then. Proyek sekarang berbunyi Saat Dimulai, Jika Front Distance menemukan suatu objek, maka Hancurkan bangunan yang ditemukan menggunakan Sensor Jarak.
  • Pindahkan blok [Komentar] lainnya ke cabang 'Lainnya' pada proyek untuk mengetahui apa yang akan terjadi jika Robot VR TIDAK mendeteksi adanya bangunan.

    Proyek VEXcode VR yang sama dengan komentar kedua di dalam C cabang else. Proyek kini berbunyi Saat dimulai, Jika Front Distance menemukan sebuah objek, maka Runtuhkan bangunan yang ditemukan menggunakan Sensor Jarak; jika tidak, Putar untuk menemukan bangunan menggunakan Sensor Jarak.
  • Tambahkan blok [Drive] ke cabang 'If Then' dari blok [If then else].

    Proyek VEXcode VR yang sama dengan blok Drive yang diatur untuk diteruskan di bawah komentar pertama di cabang Jika maka. Cabang Jika maka sekarang berbunyi, Jika Jarak Depan menemukan suatu objek, maka Komentar Hancurkan bangunan yang ditemukan menggunakan sensor Jarak; Melaju ke depan.
  • Ketika blok <Distance found object> melaporkan SALAH, Robot VR perlu berbalik dan mencari bangunan di Taman Bermain. Tambahkan blok [Turn] di bawah blok [Comment] di cabang 'Else' dari blok [If then else].

    Proyek VEXcode VR yang sama dengan blok Turn yang diatur di kanan bawah komentar kedua di cabang Else. Cabang Else sekarang berbunyi, Else, Komentar giliran untuk menemukan bangunan menggunakan Sensor Jarak; lalu Belok kanan.
  • Sebelum proyek diuji, satu blok lagi perlu ditambahkan. Blok [If then else] hanya akan memeriksa kondisi sebelum berpindah ke blok berikutnya dalam tumpukan. Pada Unit 7, blok [Selamanya] ditambahkan ke proyek untuk menginstruksikan Robot VR untuk berulang kali memeriksa kondisi Sensor Mata Bawah. Untuk memastikan kondisi Sensor Jarak diperiksa berulang kali, seret blok [Selamanya] ke dalam ruang kerja di sekitar blok [Jika lalu yang lain].

    Gambaran umum tentang cara menambahkan blok Forever ke proyek sehingga keseluruhan blok If then else berada di dalam C blok Forever. Proyek sekarang berbunyi Saat dimulai, Selamanya, Jika Jarak depan menemukan objek maka terus maju; jika tidak, belok kanan.
  • Buka Dynamic Castle Crasher Playground dan jalankan proyeknya.

    Pemandangan dari atas ke bawah Castle Crasher Playground dengan tiga kastil utuh dan dua bangunan kastil roboh. Robot tersebut berada di sudut kanan atas di samping kastil yang roboh.
  • Setelah Robot VR merobohkan setidaknya dua bangunan, muat ulang Playground dan jalankan proyek pada tata letak lain dari Dynamic Castle Crasher Playground.

    Pemandangan dari atas ke bawah Castle Crasher Playground dengan tiga kastil utuh dan dua bangunan kastil roboh. Robot tersebut berada di sudut kanan atas di samping kastil yang roboh.
  • Pada setiap putaran proyek, Robot VR akan berputar hingga sebuah bangunan terdeteksi oleh Sensor Jarak, lalu melaju ke arah bangunan tersebut untuk menjatuhkannya.

    Tampak samping Robot VR yang mendorong potongan kastil dari sisi Taman Bermain, tetapi robot mulai melaju ke tepi Taman Bermain seolah-olah robot itu juga akan jatuh dari tepian.
  • Selama berlangsungnya proyek, Robot VR dapat mendorong bagian bangunan hingga ke tepian dan jatuh dari Taman Bermain. Hal ini karena blok <Distance found object> masih melaporkan bahwa ada objek di depan Robot VR. Bila blok ini melaporkan BENAR, Robot VR melaju maju. Menyebabkan Robot VR jatuh dari meja.

Pilih tombol Berikutnya untuk melanjutkan sisa Pelajaran ini.