Pelajaran 4: Alur Proyek dengan Loop Bersarang
Kumpulkan dua disk berikutnya
-
Sekarang setelah Robot VR menghadap cakram merah, Robot VR perlu mengulangi perilaku yang sama yang digunakan untuk mengumpulkan cakram biru, untuk mengambil dan memindahkan cakram merah. Perilaku mengemudi maju untuk mengambil cakram, berbalik arah, dan mengemudi kembali ke tujuan berwarna sama untuk mengembalikan cakram.

-
Setelah cakram merah pertama digerakkan, Robot VR kemudian perlu melaju ke sasaran hijau dan melakukan tindakan yang sama yang digunakan untuk menggerakkan cakram biru dan merah, untuk menggerakkan cakram hijau pertama.

- Untuk mengulang perilaku beberapa kali, perulangan untuk dapat digunakan.

-
Tambahkan loop untuk ke bagian atas proyek, di atas komentar pertama, dan atur parameter fungsi rentang ke '3'. Pastikan loop untuk menjorok dalam definisi utama.
def main(): untuk repeat_count dalam rentang(3): tunggu(5, MSEC) -
Untuk menyalin kode ke dalam loopuntuk, perhatian cermat perlu diberikan pada lekukan. Pertama, tambahkan spasi sebelum perintahwait, sehingga loopnya tampak seperti ini:
def main(): untuk repeat_count dalam rentang(3): tunggu(5, MSEC) - Berikutnya, pilih perintah yang akan dimasukkan ke dalam loopfor, lalu salin dan tempel di atas perintahwait. Perhatikan bahwa lekukan akan menjadi salah setelah hanya menyalin dan menempel. Garis indikator abu-abu dari loopuntukputus, dan terputus dari perintahtunggu. Ini adalah isyarat visual bahwa proyek Anda tidak akan berjalan sebagaimana mestinya.

-
Pilih perintah di dalam loopfor, dan gunakan 'Tab' untuk membuat indentasi perintah di dalam loop dengan benar. Jika diberi indentasi yang benar, garis indikator abu-abu akan menghubungkan loop fordengan perintah waituntuk menunjukkan batas loop luar. Setelah selesai, proyek Anda akan terlihat seperti ini:
def main(): untuk pengulangan_hitungan dalam rentang(3): # 1. Berkendara ke disk menggunakan Down Eye Sensor saat tidak down_eye.near_object(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() # 2. Ambil disk magnet.energize(BOOST) # 3. Berkendara ke tujuan menggunakan Sensor Jarak drivetrain.turn_to_heading(180, DEGREES) while front_distance.get_distance(MM) > 200: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain. berhenti() # 4. Jatuhkan cakram pada sasaran magnet.energize(DROP) drivetrain.drive_for(REVERSE, 100, MM) # 5. Belok dan melaju ke sasaran berikutnya drivetrain.turn_to_heading(90, DEGREES) drivetrain.drive_for(FORWARD, 800, MM) # 6. Beralih ke disk drivetrain.turn_to_heading(0, DEGREES) wait(5, MSEC) - Tonton video di bawah untuk melihat cara memindahkan perintah dan menyesuaikan indentasi seperti dijelaskan di atas. Dalam klip video, enam bagian komentar proyek disorot, dan Menu Konteks dibuka. Opsi 'Potong' dipilih, lalu kursor ditempatkan di bawah perintah loop untuk . Menu Konteks dibuka lagi, dan 'Tempel' dipilih. Perintah tersebut kemudian berada dalam loop untuk , tetapi indentasinya salah. Enam bagian komentar disorot lagi dan 'Tab' pada keyboard ditekan untuk membuat indentasi proyek dengan benar di dalam loop.
- Buka Disk Mover Playgroundjika belum terbuka, dan jalankan proyek.
-
Saat proyek ini dijalankan, Robot VR mengambil dan menjatuhkan satu cakram dari setiap warna ke sasaran berwarna yang sesuai.

Untuk Informasi Anda
Perhatikan bahwa Robot VR terus menabrak dinding. Perilaku ini diharapkan karena proyek menginstruksikan Robot VR untuk berbelok ke kanan dan melaju menuju tujuan berikutnya, tiga kali. Pertama kali adalah berkendara dari biru ke merah. Yang kedua dari merah ke hijau, dan yang ketiga dari hijau ke tembok, karena tidak ada gawang berwarna lainnya. Hentikan proyek setelah Robot VR menabrak tembok. Proyek ini dapat ditingkatkan sehingga Robot VR berhenti setelah mengambil dan menggerakkan cakram hijau, tetapi hal ini akan meningkatkan kompleksitas proyek secara keseluruhan.