Video: Cara Menyelesaikan Rubik 3x3 untuk pemula part 1 2024
Di Ruby, Anda bisa membuat persegi panjang di layar menggunakan seni ASCII. Jika Anda akan menggambar persegi panjang di atas kertas yang dipenuhi dengan sebuah pola, apa yang perlu Anda lakukan? Pertama, Anda bisa menggambar garis besar persegi panjang, dan kemudian Anda mungkin berwarna di bagian dalam.
Tapi untuk program Anda di Ruby, Anda ingin menggambar bentuk dari atas ke bawah, satu baris pada satu waktu. Bagaimana Anda menjelaskan bagaimana melakukan itu? Seperti ini:
-
Gambarlah bagian atas persegi panjang dengan menggunakan pola luar (atau tepi) untuk baris pertama.
-
Untuk setiap garis yang membentuk sisi dan bagian dalam persegi panjang, tarik tepi kiri, bagian tengahnya, dan ujung kanannya.
Ulangi langkah ini sampai Anda perlu menggambar bagian bawah persegi panjang.
-
Gambarkan bagian bawah persegi panjang persis saat Anda menarik tepi atas.
Ini adalah algoritma untuk menggambar garis persegi panjang berdaris dari atas ke bawah.
Algoritma hanyalah urutan langkah yang Anda ikuti untuk menyelesaikan beberapa tugas atau perhitungan. Dalam kasus ini, Anda telah menuliskan urutan untuk menggambar persegi panjang dengan memindai dari atas ke bawah, baris demi baris.
Versi Ruby dari algoritma Anda banyak membaca seperti versi bahasa Inggris:
-
Siapkan dua variabel yang mempermudah melihat apa yang sedang terjadi. Anda akan menggunakan pilihan pengguna untuk ukuran bentuk baik sebagai tinggi dan lebar gambar yang akan Anda gambar:
height = shape_size width = shape_size
-
Anda akan menggambar garis persegi panjang berdasar garis, jadi atur sebuah loop yang akan mengulang kode Anda untuk setiap baris (jadi, itu berarti Anda memerlukan kode gambar Anda untuk berlari tinggi kali):
1. upto (tinggi) lakukan | row | # Menggambar kode di sini akhir
Loop adalah cara yang ampuh untuk mengulang kode beberapa kali (atau bahkan jumlah tak terbatas)! Ruby memiliki beberapa cara untuk memprogram sebuah lingkaran. Metode upto adalah cara mudah menghitung dari nomor awal ke nomor akhir. Untuk persegi panjang, Anda ingin menghitung mulai dari 1 untuk baris pertama dan penghitungan akhir saat Anda mencapai nomor yang ditunjukkan oleh tinggi badan.
-
Sekarang, agar algoritma bekerja, Anda perlu memeriksa untuk melihat baris yang Anda inginkan agar program dicetak. Anda memiliki tiga kasus: baris pertama, baris tengah, dan baris terakhir. Tambahkan dalam kasus untuk baris pertama di tengah lingkaran Anda:
jika baris == 1 puts out_letter * width end
Jika variabel baris sama dengan satu, program akan menggunakan opsi untuk mencetak pilihan Anda untuk outer_letter beberapa kali sama dengan lebar.
Anda menggunakan jika pernyataan bila Anda ingin melihat apakah beberapa kondisi benar atau salah.Simbol == di Ruby mengajukan pertanyaan: "Apakah benda di sisi kiri sama dengan benda di sisi kanan simbol ==? "Jika ya, maka Ruby akan menjalankan baris kode sampai ada syarat lain atau kata kunci akhir.
-
Selanjutnya, tambahkan cek untuk melihat apakah ini baris terakhir. Kata kunci elsif memulai tes kondisi lain, dan Anda menempatkannya tepat sebelum kata kunci akhir sebelumnya. Itu bukan kesalahan ejaan, omong-omong. Ruby hanya memiliki cara yang lucu untuk mengatakan "else if"! Semuanya akan terlihat seperti ini:
jika baris == 1 menempatkan outer_letter * width elsif row == height puts out_letter * width end
-
Akhirnya, Anda perlu menangani tampilan semua baris di tengah, jadi tambahkan satu kondisi terakhir dengan menggunakan kata kunci Ruby yang lain. Kode ini berjalan tepat sebelum kata kunci akhir. Inilah keseluruhan blok Ruby:
jika baris == 1 menempatkan outer_letter * width elsif row == height puts outside_letter * width else middle = inside_letter * (width - 2) puts "# {outside_letter} # {middle} # { outside_letter} "end
Kasus tengah terlihat rumit. Apa yang dilakukannya Nah, menurut algoritma Anda, perlu untuk menarik tepi kiri dan kanan dan segala sesuatu di tengah.
Variabel tengah menghitung string yang mewakili pusat persegi panjang. Jika Anda mengambil satu untuk karakter tepi kiri dan satu untuk karakter tepi kanan, lebar akhir tengah adalah lebar penuh dikurangi dua karakter.
Pernyataan akhir menempatkan pemrosesan string untuk membuat gabungan baris.
-
Jalankan program Anda dan lihat apakah Anda memiliki kesalahan. Apakah Anda mendapatkan sesuatu seperti apa yang ditunjukkan di sini? Jika Anda melihat kesalahan yang mengatakan sesuatu seperti perbandingan Fixnum with String failed, ini berarti Ruby mengalami kesulitan menggunakan nilai di dalam shape_size sebagai sebuah angka.
Ruby tidak yakin bagaimana menggunakan string untuk angka.Mengapa ada masalah jika Anda mengetik angka? Nah, terbaca masukan Anda, tapi membaca semua karakter yang Anda ketikkan sebagai string. Anda harus membantu Ruby mengubah string menjadi angka.
-
Ubah dua baris di mana Anda mengatur variabel tinggi dan lebar untuk menggunakan metode to_i, yang berarti mengubah isi variabel ini menjadi bilangan bulat (bilangan):
height = shape_size. to_i width = shape_size to_i
Jalankan kode Anda lagi Keberhasilan!
Apakah ini persegi panjang yang paling menarik di dunia?