Menara Hanoi (Tower of Hanoi) adalah sebuah permainan matematis atau teka-teki. Permainan ini terdiri dari tiga tiang dan sejumlah cakram dengan ukuran berbeda-beda yang bisa dimasukkan ke tiang mana saja. Permainan dimulai dengan cakram-cakram yang tertumpuk rapi berurutan berdasarkan ukurannya dalam salah satu tiang, cakram terkecil diletakkan teratas, sehingga membentuk kerucut.
Tujuan dari teka-teki ini adalah untuk memindahkan seluruh tumpukan ke tiang yang lain, mengikuti aturan berikut:
- Hanya satu cakram yang boleh dipindahkan dalam satu waktu.
- Setiap perpindahan berupa pengambilan cakram teratas dari satu tiang dan memasukkannya ke tiang lain, di atas cakram lain yang mungkin sudah ada di tiang tersebut.
- Tidak boleh meletakkan cakram di atas cakram lain yang lebih kecil.
Ilustrasi dari aturan di atas dapat dilihat pada gambar di bawah ini:
Dalam permainan ini pun, jumlah cakram yang digunakan untuk bermain akan mempengaruhi jumlah langkah efektif yang dapat dilakukan untuk memindahkan semua cakram itu dari satu menara ke menara lainnya. Rumus jumlah langkah efektif (n):
n = 2jumlah_cakram – 1
(Sumber Informasi & Gambar: http://id.wikipedia.org/wiki/Menara_Hanoi, http://ajeeiz.files.wordpress.com/2010/07/tower_of_hanoi.jpg)
Apa yang harus dilakukan?
Buatlah permainan sederhana “Tower of Hanoi” dengan menggunakan C#!
1. Tampilan awal untuk programnya adalah sebagai berikut:
Untuk kondisi awal, yang ada di dalam groupBox “Pilihan Level” berada dalam kondisi enable, sedangkan yang sisanya berada dalam kondisi disable.
Pada permainan ini, tersedia 8 level (1-8) dengan tingkat cakramnya dimulai dari 3 tingkat hingga 10 tingkat, dengan kata lain tiap bertambah 1 level, tingkat cakramnya akan bertambah 1 tingkat.
(Pilihan level menggunakan NumericUpDown)
2. Setelah level dipilih dan tombol mulai diklik, maka yang ada di dalam groupBox “Pilihan Level” akan berada dalam kondisi disable, sedangkan sisanya (kecuali tombol “Pindah”) akan berada dalam kondisi enable.
Selain itu, tampilkan langkah efektif dan jumlah langkah seperti pada gambar.
Isi pilihan pada kedua combobox yang ada di bagian bawah adalah angka 1, 2, dan 3 (menunjukkan nomor dari tower/menara).
3. Setelah pemain menentukan pemindahan cakram dari suatu menara ke menara lain, maka tombol “Pindah” akan berubah kondisi menjadi enable.
Tombol “Pindah” tidak akan berubah kondisi menjadi enable apabila:
- Kedua/salah satu combobox masih belum berisi pilihan (masih kosong).
- - Combobox yang sebelah kiri berisi nomor tower yang masih belum berisi cakram / masih kosong.
- - Kedua combobox berisi nomor tower yang sama.
4. Saat tombol “Pindah” ditekan, maka kedua combobox akan kembali kosong pilihannya dan tombol “Pindah” akan berubah kondisi menjadi disable kembali. Selain itu, gambar dari kepingan cakram juga akan berpindah sesuai dengan pilihan dari pemain.
5. Apabila cakram yang ukurannya lebih besar akan dipindahkan ke atas cakram yang ukurannya lebih kecil, maka munculkan pesan peringatan seperti di bawah ini:
6. Setiap satu kali pemindahan cakram berhasil dilakukan, maka Jumlah Langkah yang ditampilkan akan bertambah 1.
7. Karena kondisi menang dari permainan ini adalah saat semua cakram telah berpindah dari Tower1 ke Tower2/Tower3 dengan urutan cakram yang sama seperti kondisi awal, maka saat kondisi tersebut terpenuhi, maka akan dimunculkan pesan seperti di bawah ini:
Setelah tombol OK ditekan, maka kondisi dari tampilan akan dikembalikan seperti pada tampilan awal (pada no. 1).
NB: Untuk detail yang lebih jelas lagi mengenai permainan ini, telah dilampirkan file .exe pada folder "Soal Tiwer of Hanoi" di folder "RESPONSI SD GASAL 2011" di server TG 4.8, sehingga dapat langsung dilihat bagaimana kerja dari permainan ini.
Hint: Untuk daerah berwarna putih yang mencerminkan tower/menara, Anda dapat menggunakan Panel.




