Sampai saat ini kebanyakan orang memainkan tetris hanya dengan menggunakan intuisi dan perasaan untuk menyusun balok-balok tetris yang turun. Penyusunan balok ini harus dilakukan sedemikian rupa sehingga dapat menghasilkan nilai sebanyak mungkin, dan menjaga kelangsungan permainan selama mungkin. Dalam makalah ini, kami ingin memaparkan sebuah ide algoritma untuk mencari solusi yang mendekati solusi optimum dalam permainan tetris. Sebagai pendekatan dalam memperoleh keoptimuman digunakan algoritma Greedy, sementara itu algoritma Brute Force dipakai untuk mengevaluasi kemungkinan penumpukan balok tetris yang mungkin terjadi.
Tujuan dan manfaat
Melatih kemampuan berkonsentrasi dan berpikir pada anak.
Anak-anak biasanya lebih bisa diajak belajar pada saat suasana hati mereka bahagia. Itulah mengapa hampir di setiap sekolah setaraf Taman Kanak-kanak, anak-anak selalu diajak belajar sambil bermain. Nah.. Saat buah hati kita bermain puzzle, dia akan melatih sel-sel otaknya untuk berkonsentrasi dan berpikir. Karena permaian ini memang sangat membutuhkan konsentrasi yang tinggi. Semakin buah hati kita bisa bermaian pada level permainan yang lebih tinggi, berarti meningkat pula kemampuan berpikir dan berkonsentrasi buah hati kita.
Tetris
Tetris adalah sebuah tipe permainan yang dibua oleh sepasang programmer berkebangsaan Uni Soviet (sekarang Rusia). Dalam permainan tetris, balok-balok tetris berjatuhan ke area permainan dalam waktu konstan. Balok tetris selalu terdiri dari 4 balok kecil yang membentuk tujuh macam rupa yang unik (berbeda satu sama lain). Pemain dapat mengontrol balok tetris yang jatuh melalui 4 jenis kendali, yaitu 2 tombol, masingmasing arah kiri dan kanan untuk menggerakkan
balok ke kiri atau ke kanan. Dua kendali yang lain adalah tombol untuk menambah kecepatan jatuhnya balok, dan satu tombol lagi untuk memutar balok 90o
searah jarum jam (mengubah bentuk balok). Tujuan permainan ini adalah untuk mengarahkan balok yang jatuh ke arah susunan tumpukan balok-balok yang
telah jatuh sebelumnya., sehingga balok-balok tersebut dapat tersusun membentuk baris penuh.
Setiap baris yang penuh akan dihilangkan dari tumpukan dan tumpukan diatasnya akan jatuh sesuai jumlah baris yang hilang. Jika susunan tumpukan balok mencapai garis batas atas, maka permainan berakhir.
Aturan permainan tetris
Cara bermain Game Tetris adalah dengan mengatur agar susunan balok yang berjatuhan dapat tertumpuk rapi.Semakin banyak balok yang dapat tertumpuk dengan rapi secara horisontal,semakin banyak skor atau poin yang akan didapatkan.
Secara default,penggunaan tombol dalam bermain game Tetris sebagai berikut:
Anak panah atas = Berputar
Anak Panah Kiri = Gerak ke kiri
Anak Panah Kanan = Gerak ke kanan
Anak Panah Bawah = Menjatuhkan dengan cepat
Tombol P = Pause/berhenti
Game tetris sukses setelah dirilis oleh gameboy pada tahun 1989,kemudian permainan ini mulai dirilis ulang oleh berbagai perusahaan game dunia seperti nintendo,playstation,office game,dan perusahaan-perusahaan game lainya.
Para penggemar game tetris berpendapat,game Tetris merupakan game yang banyak menguras otak dan dapat mengasah cara pandang ruang otak seseorang.
Saat ini,Game Tetris semakin berkembang.Beragam versi muncul,dan semakin banyak penggemarnya.Lihat saja,Game yang dulu hanya menggunakan sistem penilaian berdasarkan balok yang disusun,tapi sekarang muncul versi game Tetris yang dalam penilaianya berdasar warna balokyang disusun
Algoritma
Algoritma yang digunakan untuk mencari solusi dari permainan tetris dalam makalah ini adalah algoritma yang menggunakan konsep-konsep yang ada dalam algoritma Greedy dan Algoritma BruteForce. Algoritma Greedy merupakan metode yang paling umum digunakan untuk memecahkan masalh optimasi. Algoritma ini sederhana dan lempang. Algoritma Greedy memecahkan masalah langkah per langkah, pada setiap langkah:
1. mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (prinsip “take what you can get now!”)
2. berharap bahwa dengan memilih optimum local pada setiap langkah akan berakhir dengan optimum global Brute force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah,
biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way).
Algoritma yang kami gunakan untuk mendapatkan susunan tumpukan balok yang paling baik dengan menempatkan balok ke tempat yang tepat. Algoritma ini menggunakan prinsip Greedy dalam mencari langkah sollusi yang paling menguntungkan. Prioritas keuntungan yang kami susun terdiri dari:
1. Membentuk satu atau lebih baris paling penuh
2. Membentuk satu atau lebih baris paling mendekati penuh
3. Tidak membentuk ruang kosong pada susunan tumpukan balok
4. Balok dapat masuk ke dalam susunan tumpukan balok paling dalam
Algoritma yang kami kemukakan akan mencari penempatan balok yang jatuh ke ruang yang paling tepat sesuai prioritas keuntungan di atas diantara susunan tumpukan balok. Pencarian ini akan dilakukan secara Brute Force.
Balok yang jatuh akan dicoba untuk ditempatkan ke ruang di antara susunan tumpukan balok dibawah. Algoritma ini akan mencari penempatan yang sesuai
dengan prioritas di atas. Pencarian solusi diantara susunan tumpukan balok akan dilakukan secara Brute Force. Algoritma ini akan mencari solusi paling menguntungkan untuk setiap sisi balok yang sedang jatuh. Pencarian solusi untuk setiap sisi dilakukan secar Brute Force. Apabila pada skala prioritas tertinggi memiliki lebih dari satu solusi terbaik yang sama, maka diantara solusi tersebut akan dibandingkan satu sama lain untuk mencari yang paling menguntungkan dengan standard prioritas selanjutnya, dan begitu selanjutnya. Apabila pada skala prioritas tertinggi tidak memiliki solusi, maka akan mencari solusi paling menguntungkan dengan skala prioritas selnjutnya, dan begitu selanjutnya.
Apabila pada skala prioritas tertinggi hanya memiliki satu solusi paling menguntungkan, maka akan dibandingkan dengan solusi dari hasil pencarian solusi untuk sisi balok yang lain. Diantara setiap solusi sisi balok, dicari solusi yang paling menguntungkan sesuai skala prioritas di atas. Dan balok akan ditempatkan pada ruang tersebut.
Studi Kasus
Apabila ada kasus seperti diatas, maka algoritma kami akan mencari solusi yang paling menguntungkan untuk menempatkan balok tersebut ke ruang di antara susunan tumpukan balok. Pencarian dicari secara brute force dari kiri ke kanan
untuk sisi yang pertama kali keluar. Dapat dilihat seperti gambar berikut, bahwa algoritma seakan-akan menempatkan balok tersebut dari kiri ke kanan untuk balok dengan sisi tersebut.
Setelah algoritma ini mancari solusi sampai paling kanan, maka algoritma ini akan menyimpan satu solusi terbaik yang ada. Apabila ada beberapa solusi yang sama baiknya, maka akan diambil penempatan paling kiri, seperti dilihat dibawah ini.
Setelah menyimpan solusi terbaik untuk sisi tersebut, maka algoritma ini akan mulai mencari solusi optimum untuk sisi berikutnya. Tampak di bawah, algoritma ini seakan-akan memutar balok untuk memulai pencarian sisi berikutnya. Sisi berikut yang kami maksud disini adalah sisi dimana balok yang sedang jatuh diputar 900 searah jarum jam.
Setelah itu, algoritma ini akan menyimpan solusi dari setiap sisi berikutnya, seperti terlihat pada tiga gambar berikut ini.
Diantara setiap solusi sisi balok, dicari solusi yang paling menguntungkan sesuai skala prioritas di atas. Dan balok akan ditempatkan pada ruang tersebut. Seperti terlihat pada gambar berikut, algoritma ini telah menemukan solusi terbaik, dan menempatkan balok pada ruang tersebut.
Tidak ada komentar:
Posting Komentar