BAB 3 GRAFIK KURA-KURA
3.6 Pelangi Acak
Anda dapat memprogram kura-kura Python untuk menggambar segala macam pola dan desain. Tapi hati-hati! Sepertinya kura-kura dalam proyek ini menjadi sedikit liar— Anda tidak akan melihat pelangi seperti ini di langit!
Apa yang terjadi
Program akan meminta Anda untuk memilih panjang dan ketebalan garis yang dilukis oleh kura-kura. Kura-kura kemudian berlarian di sekitar layar sampai Anda menghentikan program, melukis garis-garis berwarna saat berjalan. Jenis pola yang dibuat akan berubah, tergantung pada panjang dan ketebalan garis.
Warna apa selanjutnya?
Di Mutant Rainbow, Anda akan menggunakan fungsi choice() dari modul acak Python untuk memilih warna saat Anda memberi tahu kura-kura untuk menggambar garis. Ini berarti Anda tidak dapat benar-benar memprediksi warna mana yang akan digunakan kura-kura setiap saat.
Gambar 3.20 Macam-macam pena berwarna
Tampilan warna
Karena program ini menggunakan perulangan while tak terbatas, kura-kura terus menggambar sampai Anda menutup jendelanya. Anda tidak hanya dapat mengubah warna, lebar, dan panjang garis, tetapi juga bentuk, warna, dan kecepatan kura-kura itu sendiri.
Bagaimana itu bekerja
Setiap pola dalam proyek ini berbeda karena program memberitahu kura-kura untuk menghadap ke arah baru secara acak sebelum melukis setiap garis. Warna untuk setiap baris juga dipilih secara acak dari daftar kemungkinan warna yang telah Anda kodekan. Jadi Anda tidak akan pernah bisa memprediksi dengan tepat apa yang akan dilakukan kura-kura!
Gambar 3.21 Macam-macam ketebalan Pena Diagram alir Pelangi Mutan
Program menggunakan loop tak terbatas yang terus melukis garis berwarna selama
Gambar 3.22 Diagram alur Pelangi Mutan
Kura-kura pelarian!
Diberi kebebasan penuh untuk berkeliaran, kura-kura cenderung berkeliaran di luar jendela. Saat Anda menyusun program, Anda akan menulis beberapa kode untuk memeriksa posisi kura-kura dan menghentikannya agar tidak menyimpang terlalu jauh. Jika tidak, ini akan berubah menjadi proyek penyu yang menghilang!
Memulai
Mulailah dengan menyiapkan dan menyimpan file baru, mengimpor modul yang dibutuhkan program, dan membuat beberapa fungsi yang berguna untuk mendapatkan masukan pengguna.
1. Buat file baru
Buka IDLE dan buat file baru. Simpan sebagai "pelangi.py".
2. Tambahkan modul
Ketik dua baris ini di bagian atas file Anda untuk mengimpor modul Turtle dan modul acak. Ingatlah untuk menggunakan import turtle sebagai t, sehingga Anda tidak perlu mengetikkan kata “turtle” setiap kali ingin menggunakan fungsi dari modul Turtle.
Anda bisa menyebutnya t.
3. Tetapkan panjang garis
Selanjutnya buat fungsi yang akan membiarkan pengguna memutuskan apakah kura-kura melukis garis panjang, sedang, atau pendek. Anda tidak akan menggunakannya sampai Langkah 4, tetapi ini akan membuat program siap saat Anda membutuhkannya.
Ketik sedikit kode ini di bawah kode pada Langkah 1.
4. Tentukan ketebalan
Pada langkah ini, Anda akan membuat fungsi yang memungkinkan pengguna memilih apakah kura-kura melukis garis super tebal, tebal, atau tipis. Seperti fungsi get_line_length(), Anda tidak akan menggunakannya hingga Langkah 5. Ketik kode yang ditampilkan di sini, di bawah kode yang Anda tambahkan di Langkah 3.
5. Gunakan fungsi
Sekarang setelah Anda membangun dua fungsi, Anda dapat menggunakannya untuk mendapatkan pilihan pengguna untuk panjang dan lebar garis. Ketik baris ini di akhir kode Anda, lalu simpan pekerjaan Anda.
6. Uji programnya
Jalankan kode untuk melihat fungsi baru beraksi di shell. Mereka akan meminta Anda untuk memilih panjang dan lebar garis.
Panggil kura-kura!
7. Buka jendela
Ketik garis yang ditampilkan di sini di bawah kode yang Anda tambahkan pada Langkah 5. Kode ini mendefinisikan warna latar belakang jendela, bentuk, warna, dan kecepatan kura-kura, dan lebar pena yang akan digunakan kura-kura untuk menggambar garis.
8. Jalankan proyek
Jika Anda menjalankan kode sekali lagi, sebuah jendela akan muncul setelah Anda memasukkan ukuran garis di jendela shell. Anda sekarang akan melihat kura-kura.
Perhatikan baik-baik, karena itu tidak akan duduk diam terlalu lama!
9. Tetap dalam batas!
Untuk menghentikan kura-kura agar tidak tersesat, mari kita tetapkan batas 100 langkah dari tepi jendela. Buat fungsi ini untuk memeriksa apakah kura-kura berada di dalam batas atau tidak. Ketik kode yang ditunjukkan di sini di bawah kode di Langkah 4 dan di atas kode di Langkah 5.
Gambar 3.23 Hasil dari list program
Cara kerjanya
Kode memeriksa apakah koordinat x kura-kura berada di antara batas kanan dan kiri, dan apakah koordinat y berada di antara batas atas dan bawah.
Gambar 3.24 memeriksa letak bintang yang muncul
Pindahkan kura-kura itu!
Sekarang Anda siap untuk menulis fungsi yang membuat kura-kura Anda bergerak.
Bagian terakhir dari kode akan menjadi loop sementara yang membuat kura-kura menggambar pelangi mutan!
10. Garis mutan
Tambahkan kode ini di bawah kode yang Anda ketik di Langkah 9, dan di atas kode yang Anda ketik di Langkah 5. Fungsi ini membuat kura-kura berputar dan bergerak maju ke arah yang baru, menggambar satu baris warna acak saat berjalan. Program utama Anda akan menggunakannya berulang kali untuk menggambar pelangi mutan.
Jika kura-kura tersesat di luar batas yang Anda tetapkan di Langkah 9, fungsi ini akan mengembalikannya.
Cara kerjanya
Kode memanggil fungsi inside_window() untuk melihat apakah kura-kura berada dalam batas jendela. Jika ya, kura-kura berbelok ke kanan dengan jumlah acak antara 0 derajat (tidak berbelok sama sekali) dan 180 derajat (menghadap ke arah yang berlawanan), lalu bergerak lagi. Jika sudah terlalu jauh dari batas, ia bergerak mundur.
11. Pergi, Kura-Kura, Pergi!
Terakhir, tambahkan kode yang sebenarnya akan memulai menggambar kura-kura Anda. Ketik dua baris ini tepat di bagian bawah kode Anda, di bawah perintah yang Anda tambahkan di Langkah 7. Kemudian simpan dan jalankan kode untuk melihat pelangi mutan pertama Anda!
Peretasan dan penyesuaian
Apakah mutan pelangi Anda cukup? Tidak? Berikut adalah beberapa ide yang bisa Anda coba untuk membuatnya lebih aneh!
Kejutan warna!
Dalam Python, warna juga dapat dideskripsikan dengan menggunakan nilai RGB— ini singkatan dari merah, hijau, biru. Memilih nilai secara acak untuk jumlah merah, hijau, dan biru dalam suatu warna berarti warna itu sendiri akan sepenuhnya acak. Coba ganti kode di fungsi move_turtle() dengan beberapa kode baru yang menggunakan nilai RGB alih-alih nama warna. Sekarang jalankan kode untuk melihat warna apa yang muncul!
Campurkan garis
Jangan hanya berpegang pada satu lebar untuk garis—gambar pelangi yang lebih acak dengan retasan ini! Garis akan berubah secara acak dari sangat tipis menjadi sangat
tebal dan semua lebar di antaranya. Tambahkan kode ini ke fungsi move_ turtle() setelah Anda menyetel t.pencolor.