Lompat ke isi utama

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.

    Tampilan atas ke bawah dari Disk Mover Playground dengan tanda panah putus-putus yang menunjukkan jalur Robot VR dari gawang merah untuk mengumpulkan cakram merah dan menjatuhkannya ke gawang, lalu menunjuk ke kanan untuk bergerak ke gawang hijau.
  • 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.

    Tampilan atas ke bawah Disk Mover Playground di awal, dengan tanda 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 tambahan di sebelah kanan menunjuk di antara setiap area gawang.
  • Untuk mengulang perilaku beberapa kali, perulangan untuk dapat digunakan.
    Perintah loop VEXcode VR Python dalam definisi utama. Perintah membaca nilai dalam rentang dengan angka 10 dalam tanda kurung titik dua pada baris pertama, lalu menjorok di bawah perintah tunggu membaca tunggu dengan angka 5, MSEC dalam tanda kurung.
  • 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.Proyek di atas, disalin dan ditempel ke dalam for loop, dengan indentasi yang salah. Indentasi yang benar ditunjukkan pada blok kode berikutnya.
  • 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.
Berkas video
  • 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.

    Tampilan atas bawah Robot VR di akhir proyek, dengan satu cakram warna masing-masing pada gawang yang cocok, 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 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.

Tampilan atas bawah Robot VR di akhir proyek, dengan tombol Stop di jendela Playground disorot di sudut kiri. Di Taman Bermain, satu cakram warna untuk setiap gawang yang cocok, dan Robot VR menghadap dinding sisi kanan di tengah gawang hijau, saat tombol berhenti ditekan.

 

 

Pertanyaan

Silakan pilih tautan di bawah untuk mengakses kuis pelajaran.

Google Doc / .docx / .pdf