Lompat ke isi utama

Pelajaran 4: Menggunakan Perulangan While Tak Terbatas

Memecahkan Masalah Labirin Cakram

Membangun proyek

  • Muat proyek Unit7Lesson3 dari Pelajaran sebelumnya, atau buat ulang proyek yang ditunjukkan di sini untuk memulai.
def main():
	# Jika mata depan mendeteksi hijau, maka belok kanan
    if front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

    # Jika mata depan mendeteksi biru, maka belok kiri
    if front_eye.detect(BLUE):
        drivetrain.turn_for(LEFT, 90, DEGREES)

    # Jika mata depan mendeteksi merah, maka berhenti
    if front_eye.detect(RED): 
        drivetrain.stop()

    # Jika mata depan tidak mendeteksi, maka melajulah ke depan
    if front_eye.detect(NONE): 
        drivetrain.drive(FOWARD)
  • Ganti nama proyek Unit7Pelajaran4.Bilah Alat VEXcode VR dengan kotak nama proyek yang disebutkan. Proyek ini diberi nama Unit 7 Pelajaran 4.

     

  • Tarik atau ketik loopwhile tak terhingga ke bagian atas proyek, lalu atur kondisinya ke Benar.
def main():
    sementara Benar:
    	tunggu(5, MSEC)
  • Pindahkan perintahwaituntuk memberi ruang bagi perintah yang akan masuk ke dalam loop tak terhinggawhile.
def main():
    sementara Benar:
    
    
    	tunggu(5, MSEC)
  • Di dalam loop tak terhinggawhile , salin dan tempel pernyataan if sebelumnya di dalam loop. Jangan hapus perintah wait di bagian bawah loop while. Proyek Anda mungkin terlihat seperti ini. Perhatikan bahwa menyalin dan menempel perintah dengan cara ini tidak menghasilkan indentasi yang benar.
def main():
    while True:
        
    # Jika mata depan mendeteksi hijau, maka belok kanan
    if front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

    # Jika mata depan mendeteksi biru, maka belok kiri
    if front_eye.detect(BLUE):
        drivetrain.turn_for(LEFT, 90, DEGREES)

    # Jika mata depan mendeteksi merah, maka berhenti
    if front_eye.detect(RED): 
        drivetrain.stop()

    # Jika mata depan tidak mendeteksi, maka melajulah ke depan
    if front_eye.detect(NONE): 
        drivetrain.drive(FOWARD)

    wait(5, MSEC)
  • Ingat, indentasi SANGAT penting dalam VEXcode VR Python. Agar alur proyek dapat dijalankan sebagaimana mestinya, pernyataan ifperlu diindentasi dalam loop whileyang tak terhingga. Pilih pernyataanjikadan tekan 'Tab' untuk membuat indentasi di dalam loopsementaratak terhingga. Bila diberi indentasi yang tepat, proyek Anda akan terlihat seperti ini: 
def main():
    while True:
        
        # Jika mata depan mendeteksi hijau, maka belok kanan
        if front_eye.detect(GREEN):
            drivetrain.turn_for(RIGHT, 90, DEGREES)

        # Jika mata depan mendeteksi biru, maka belok kiri
        if front_eye.detect(BLUE):
            drivetrain.turn_for(LEFT, 90, DEGREES)

        # Jika mata depan mendeteksi merah, maka berhenti
        if front_eye.detect(RED): 
            drivetrain.stop()

        # Jika mata depan tidak mendeteksi, maka melajulah ke depan
        if front_eye.detect(NONE): 
            drivetrain.drive(FOWARD)

        wait(5, MSEC)
  • Dengan penambahan perulangan while tak terhingga ke dalam proyek, semua pernyataan if akan berulang kali diperiksa kondisinya. Buka Disk Maze Playground dan jalankan proyeknya.
  • Saat proyek ini dijalankan, Robot VR akan menavigasi Disk Maze Playground dari awal hingga akhir. Begitu Robot VR mendeteksi warna merah, ia akan berhenti melaju.

    Robot VR di Disk Maze Playground dengan Robot VR berhenti di depan cakram merah di dekat sudut kanan bawah taman bermain.

Ringkasan

  • Dalam proyek dari Pelajaran sebelumnya, kondisi dalam pernyataan jika hanya diperiksa satu kali. Karena kondisi dalam pernyataan jika hanya diperiksa satu kali, Robot VR terus melaju selamanya karena kondisi 'tidak ada warna' yang terdeteksi dilaporkan sebagai Benar di awal proyek.
  • Sekarang setelah perulangan while tak terhingga telah ditambahkan, setiap kondisi pernyataan if akan diperiksa berulang kali. Kondisi perulangan while selalu Benar, dan karenanya kode di dalam perulangan while akan selalu dieksekusi. Ini akan berulang kali memeriksa kondisi pernyataan jika saat proyek sedang berjalan. 
  • Selama alur proyek, jika kondisi pernyataan jika bernilai Benar, perintah di dalam pernyataan jika akan dieksekusi. Jika kondisi pernyataan jika adalah Salah, perintah di dalam pernyataan jika tidak dieksekusi, dan alur proyek akan berlanjut ke perintah berikutnya. Hal ini memungkinkan Robot VR untuk melakukan perilaku diskret seperti berputar atau berhenti setelah mendeteksi warna tertentu.
  • Pernyataan If digunakan dengan perulangan whiletak terhingga untuk memastikan kondisi terus diperiksa.

Pertanyaan

Silakan pilih tautan di bawah untuk mengakses kuis pelajaran.

Google Doc / .docx / .pdf