Pelajaran 3: Saat Warna Merah Terdeteksi
Tidak ada perintah untuk memberi tahu Robot VR apa yang harus dilakukan setelah mendeteksi warna merah. Untuk menghindari batas merah, Robot VR harus berbalik dan berputar setelah mendeteksi warna merah, seperti yang dilakukannya dalam video ini.
-
Tambahkan komentar di akhir loopwhileuntuk menunjukkan apa yang seharusnya terjadi saat Sensor Mata Bawah mendeteksi batas merah. Proyek Anda sekarang akan terlihat seperti ini:
def main(): # Cari bangunan saat batas merah tidak terdeteksi while not down_eye.detect(RED): # Apakah Sensor Jarak mendeteksi kastil? jika front_distance.found_object(): # Kastil tabrakan terdeteksi oleh Sensor Jarak drivetrain.drive(MAJU) yang lain: # Belok untuk menemukan kastil menggunakan Sensor Jarak drivetrain.turn(KANAN) tunggu(5, MSEC) # Mundur dan belok saat batas merah terdeteksi -
Tambahkan perintah drive_fordan turn_for di bawah komentar untuk memungkinkan Robot VR mundur dan berputar setelah Sensor Mata Bawah mendeteksi warna merah.
def main(): # Cari bangunan saat batas merah tidak terdeteksi while not down_eye.detect(RED): # Apakah Sensor Jarak mendeteksi kastil? if front_distance.found_object(): # Kastil tabrakan terdeteksi oleh Sensor Jarak drivetrain.drive(MAJU) else: # Belok untuk menemukan kastil menggunakan Sensor Jarak drivetrain.turn(KANAN) wait(5, MSEC) # Mundur dan belok saat batas merah terdeteksi drivetrain.drive_for(BALIK, 300, MM) drivetrain.turn_for(KANAN, 90, DERAJAT) - Buka Dynamic Castle Crasher Playgroundjika belum terbuka, dan jalankan proyeknya. Apakah Robot VR berperilaku seperti yang Anda inginkan?
- Saat proyek ini dijalankan, ada dua kondisi yang diperiksa. Yang pertama adalah kondisi Sensor Mata Bawah mendeteksi warna merah di dalam loop sedangkan. Perhatikan bahwa alur proyek berpindah ke kondisi berikutnya dari suatu objek yang terdeteksi HANYA jika Sensor Mata Bawah tidak melihat warna merah. Jika Sensor Mata Bawah mendeteksi warna merah, alur proyek akan melewati pernyataan jika tidak dan langsung beralih ke gerakan mundur dan berbelok.

- Kondisi kedua yang diperiksa adalah pernyataanif else. Sementara Sensor Mata Bawah tidak mendeteksi warna merah, proyek akan berlanjut dalam loopsementarauntuk memeriksa kondisi Sensor Jarak. Robot VR akan menggunakan data dari Sensor Jarak untuk membuat keputusan untuk melaju maju atau berbelok kanan.

-
Namun, setelah Sensor Mata Bawah mendeteksi warna merah, Robot VR akan mundur, berbelok, lalu berhenti karena itulah akhir alur proyek. Tidak ada loop yang digunakan untuk mengulang perilaku tersebut lagi.

Menambahkan loop tak terhingga while
-
Perulangan tak terhingga whilediperlukan agar perilaku dapat berulang pada suatu perulangan. Tarik atau ketik loop while di bagian atas proyek, dan atur kondisi ke True untuk membuat loop tak terbatas. Lalu, salin dan tempel kode sebelumnya di dalam loop tak terhingga while. Pastikan perintah-perintah diindentasi dengan benar di bawah header yang benar, jika tidak, proyek mungkin tidak berjalan seperti yang diharapkan. Proyek Anda sekarang akan terlihat seperti ini:
def main(): while True: # Cari bangunan saat batas merah tidak terdeteksi while not down_eye.detect(RED): # Apakah Sensor Jarak mendeteksi kastil? if front_distance.found_object(): # Kastil tabrakan terdeteksi oleh Sensor Jarak drivetrain.drive(MAJU) else: # Belok untuk menemukan kastil menggunakan Sensor Jarak drivetrain.turn(KANAN) wait(5, MSEC) # Mundur dan belok saat batas merah terdeteksi drivetrain.drive_for(BALIK, 300, MM) drivetrain.turn_for(KANAN, 90, DERAJAT) - Buka Dynamic Castle Crasher Playgroundjika belum terbuka, dan jalankan proyeknya. Apakah Robot VR berfungsi seperti yang Anda inginkan?
-
Saat proyek ini dijalankan, Robot VR akan melaju menuju kastil yang terdeteksi dan berbelok kanan jika tidak ada kastil yang dilaporkan. Setelah Sensor Mata Bawah mendeteksi warna merah, Robot VR melaju mundur, berbelok, dan terus melaju menuju kastil lain.
