Langsung ke konten utama

Pelajaran 4: Alur Proyek dengan Perulangan Bersarang

Kumpulkan dua cakram berikutnya

  • Sekarang setelah Robot VR menghadap ke cakram merah, Robot VR perlu mengulangi perilaku yang sama yang digunakan untuk mengambil cakram biru, agar dapat mengambil dan memindahkan cakram merah. Perilaku mengemudi maju untuk mengambil cakram, berbalik, dan mengemudi kembali ke tujuan berwarna sama untuk menurunkan cakram.

    Tampilan dari atas arena bermain Disk Mover dengan panah putus-putus yang menunjukkan jalur Robot VR dari gawang merah untuk mengambil cakram merah dan menjatuhkannya ke gawang, kemudian menunjuk ke kanan untuk bergerak ke gawang hijau.
  • Setelah cakram merah pertama digerakkan, Robot VR kemudian perlu bergerak menuju sasaran hijau dan melakukan tindakan yang sama yang digunakan untuk menggerakkan cakram biru dan merah, untuk menggerakkan cakram hijau pertama.

    Tampilan dari atas arena bermain Disk Mover di awal, dengan panah putus-putus yang menunjukkan jalur yang harus dilalui robot untuk mengumpulkan setiap Disk. Anak panah menunjuk ke dan dari setiap gawang ke cakram pertama, dan anak panah kanan tambahan menunjuk di antara setiap area gawang.
  • Untuk mengulangi perilaku beberapa kali, dapat digunakan perulangan untuk.
    Perintah perulangan for pada VEXcode VR Python di dalam definisi utama. Perintah tersebut berbunyi "for value in range with a 10 in parentheses colon" pada baris pertama, kemudian di bawahnya terdapat perintah "wait" yang berbunyi "wait with 5, MSEC in parentheses".
  • Tambahkan perulangan untuk di bagian atas proyek, di atas komentar pertama, dan atur parameter fungsi range menjadi '3'. Pastikan loop for diberi indentasi di dalam definisi utama.

    def main():
        for repeat_count in range(3):
            wait(5, MSEC)
  • Untuk menyalin kode ke dalam loopfor, perlu diperhatikan dengan cermat indentasinya. Pertama, tambahkan spasi sebelum perintahwait, sehingga perulangan menjadi seperti ini:

    def main():
        for repeat_count in range(3):
    
    
            
            wait(5, MSEC)
  • Selanjutnya, pilih perintah yang akan dimasukkan ke dalam loopfor, lalu salin dan tempel di atas perintahwait. Perhatikan bahwa indentasi akan menjadi tidak tepat setelah hanya melakukan salin dan tempel. Garis indikator abu-abu dari loopuntukterputus, dan terlepas dari perintahtunggu. Ini adalah isyarat visual bahwa proyek Anda tidak akan berjalan sesuai rencana.Proyek di atas, disalin dan ditempel ke dalam perulangan for, dengan indentasi yang salah. Indentasi yang benar ditunjukkan pada blok kode berikutnya.
  • Pilih perintah di dalam loopfor, dan gunakan 'Tab' untuk memberi indentasi yang tepat pada perintah di dalam loop. Jika diberi indentasi dengan benar, garis indikator abu-abu akan menghubungkan loop untukdengan perintah tungguuntuk menunjukkan batas loop terluar. Setelah selesai, proyek Anda akan terlihat seperti ini: 

    def main():
        for repeat_count in range(3):
            # 1. Drive to disk using Down Eye Sensor
            while not down_eye.near_object():
                drivetrain.drive(FORWARD)
                wait(5, MSEC)
            drivetrain.stop()
    
            # 2. Ambil disk
            magnet.beri energi (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. stop()
    
            # 4. Jatuhkan disk di tujuan
            magnet.energize(DROP)
            drivetrain.drive_for(REVERSE, 100, MM)
    
            # 5. Berbelok dan berkendara ke tujuan berikutnya
            drivetrain.turn_to_heading(90, DEGREES)
            drivetrain.drive_for(FORWARD, 800, MM)
    
            # 6. Putar ke disk
            drivetrain.turn_to_heading(0, DEGREES)  
    
        wait(5, MSEC)
  • Tonton video di bawah ini untuk melihat cara memindahkan perintah dan menyesuaikan indentasi seperti yang dijelaskan di atas. Dalam klip video tersebut, enam bagian komentar proyek disorot, dan Menu Konteks dibuka. Opsi 'Potong' dipilih, lalu kursor ditempatkan di bawah perintah loop untuk . Menu konteks dibuka kembali, dan 'Tempel' dipilih. Perintah-perintah tersebut kemudian berada di dalam loop for , tetapi indentasinya salah. Enam bagian komentar disorot lagi dan tombol 'Tab' pada keyboard ditekan untuk memberi indentasi yang tepat pada proyek di dalam loop.
Berkas video
  • Buka Disk Mover Playgroundjika belum terbuka, lalu jalankan proyeknya.
  • Saat proyek ini dijalankan, Robot VR mengambil dan menjatuhkan satu cakram dari setiap warna ke dalam target berwarna yang sesuai.

    Tampilan dari atas robot VR di akhir proyek, dengan masing-masing cakram warna berada di gawang yang sesuai, dan robot VR menghadap dinding sisi kanan di tepi gawang hijau di sudut kanan bawah.

Untuk Informasi Anda

Perhatikan bahwa Robot VR terus menabrak dinding. Perilaku ini sudah diperkirakan karena proyek tersebut menginstruksikan Robot VR untuk berbelok ke kanan dan menuju ke tujuan berikutnya, sebanyak tiga kali. Pertama kali adalah berkendara dari jalur biru ke merah. Yang kedua adalah dari merah ke hijau, dan yang ketiga adalah dari hijau menuju tembok, karena tidak ada gawang berwarna lain. Hentikan proyek begitu Robot VR menabrak dinding. Proyek ini dapat ditingkatkan sehingga Robot VR berhenti setelah mengambil dan memindahkan cakram hijau, tetapi hal ini akan meningkatkan kompleksitas keseluruhan proyek.

Tampilan dari atas robot VR di akhir proyek, dengan tombol Stop di jendela Playground disorot di pojok kiri atas. Di area permainan, satu cakram dari setiap warna ditempatkan di gawang yang sesuai, dan Robot VR menghadap dinding sisi kanan di tengah gawang hijau, saat tombol berhenti ditekan.

 

 

Pertanyaan

Silakan pilih tautan di bawah ini untuk mengakses kuis pelajaran.

Google Doc / .docx / .pdf