Membuat Tetris

Tetris mungkin salah satu game puzzle yang sangat populer dan hampir dimainkan setiap orang. Game ini tersedia di berbagai device, mulai dari game boy yang dedicated untuk tetris, hand phone, komputer, Nitendo, dll. Dulu saat saya masih kecil, saya main tetris pertama kali di game boy milik teman saya. Perlu diketahui dulu tidak ada orang yang punya handphone di tempat tinggal saya. :) .Mungkin terakhir kali saya aktif main tetris saat saya punya handphone modem Smart merk Huawey. Di situ disediakan game tetris. Saya hampir setiap saat memainkannya. Bahkan blok-blok tetris sampai terbawa mimpi. Serius !!. -hahaha-. Dan ternyata tetris memang bisa menyebabkan apa yang disebut Tetris Effect. Tetris Effect 2

Beberapa hari lalu, – tepatnya awal2 ramadhan ini – punya ide untuk buat Tetris versi saya sendiri. Ya mungkin semua programmer di dunia ini punya versi tetris mereka sendiri. Hehehe. Ok saya membuatnya dari scratch, dan harus buat dari kode saya sendiri. –kalau mencari source code tetris di google itu namanya bukan tetris versi saya dunk – . Agar tetris saya mendekati “standart tetris” saya melihat referensi di  Wiki Tetris .– wow tetris punya wiki sendiri – . situs ini menjelaskan semua hal tentang tetris seperti: macam2 piece tetris, warna yang digunakan, system rotasi, bahkan system scoring yang digunakan.

Ok, setelah info tentang standart tetris didapat saat nya ngoding. Saya masih menggunakan SDL sebagai system drawing dan input handler . Dan tentu saya pakai C++. hal yang agak berbeda disini, mungkin, saya ingin menulis seluruh code game nya dalam 1 file saja: Main.Cpp. Kenapa? -tidak apa2 cuma pingin saja- . Jadi tidak ada game state.

Sesuai standar tetris terdapat 7 buah tetriminoes , dan setiap tetriminos saya representasikan sebagai array 2 dimensi 4x4. Misal tetriminoes type Z seperti berikut:

Tetriminoes tipe yang lain yaitu : tipe I, tipe J, tipe L, tipe O, tipe S, dan tipe T. Sedangkan board ukuran 10 x 20 juga di representasikan sebagai array 10 x 20.

Collision detection

Ceritanya setiap piece tetris akan bergerak jatuh, di waktu t, dan mempunyai posisi x dan y reletif terhadap board. Karena ukuran board 10 x20, maka maks X: 10 dan maks Y: 20. Setiap akan bergerak turun, di cek apakah terjadi collision atau tidak. Pengecekan dilakukan dengan mendetek apakah di posisi X, Y tersebut ada array bernilai 1 di array board 10x20 dengan meng-iterasi matrik 4x4 sesuai tipe tetriminoes.

Versi pertama yang sudah bisa dimainkan sebagai berikut:

[caption id=“attachment_455” align=“aligncenter” width=“300” caption=“Click untuk memperbesar”] [/caption]

Ukuran board 10x20, seperti standart tetris. Untuk warna saya tidak mengikuti standart.

Info project : language:  C++, input and painting handler : SDL, graphics editing : Adobe Photosop

Source Code ( SVN checkout ) https://tetrisonyx.googlecode.com/svn/trunk

Binary version 1.00 win32 win xp,win 7 :   https://tetrisonyx.googlecode.com

Keyword: simple SDL game, game  C/C++, game sederhana SDL, C/C++, Tetris.

comments powered by Disqus