c. Tukar posisi dua bola yang belum terurut pada dua cakram teratas.
i. Hitung jumlah kolom yang belum terurut pada dua bola teratasnya.
ii. Apabila jumlahnya ganjil, putar cakram yang paling atas sejauh 60 derajat.
Kemudian ulangi langkah-langkah pada tahap a untuk mengembalikan posisi bola pada kolom yang benar.
iii. Apabila jumlahnya sudah genap, tentukan dua kolom yang posisi bolanya
ingin ditukar, dan buat sebuah celah pada kolom yang lain. iv.
Lakukan langkah-langkah sesuai dengan diagram berikut untuk menukar posisi dua bola yang belum terurut pada dua cakram teratas.
Diagram tersebut menggambarkan posisi bola pada dua cakram teratas dari tiga kolom yang terlibat, yaitu dua kolom yang posisi bolanya ingin ditukar
serta satu kolom lain yang memuat celah. A, a dan B, b masing-masing menyatakan warna bola dimana huruf yang sama menyatakan jenis warna
yang sama dengan tingkat kecerahan yang berbeda. Huruf kapital menyatakan warna yang paling pucat. Sedangkan huruf Z menyatakan warna
bola dari kolom lain yang memuat celah dan spasi menyatakan sebuah celah. Perlu diperhatikan pula bahwa ketiga kolom tersebut tidak harus terletak
berdampingan. Langkah tersebut tetap dapat dilakukan apabila terdapat kolom lain di antara kolom-kolom yang terlibat.
v. Ulangi langkah iii sampai iv hingga semua posisi bola terurut.
2.2. Game Architecture
Game merupakan simulasi komputer yang bersifat real-time, dinamis dan interaktif, sehingga waktu memainkan peranan yang sangat penting dalam sebuah game
Gregory, 2009. Secara spesifik, game berada dalam kategori yang disebut real-time software application. Real-time software maksudnya adalah aplikasi komputer dimana
proses-proses yang terjadi di dalamnya sangat bergantung terhadap waktu. Setiap data yang diproses dalam real-time software akan memiliki kendala terhadap perubahan
Universitas Sumatera Utara
waktu dalam game. Sebagai kesimpulan, game merupakan aplikasi interaktif yang bergantung terhadap waktu, terdiri dari simulator dunia virtual yang mengolah data
real-time, menampilkan hasilnya secara visual, serta mengontrol mekanisme sehingga pemain dapat berinteraksi dengan dunia game Sanchez Dalmau, 2004.
Setiap real-time software terdiri dari tiga jenis proses yang berjalan dalam waktu yang bersamaan. Yang pertama adalah keadaan state dari dunia game yang
harus dikomputasi secara konstan. Yang kedua adalah interaksi yang dilakukan oleh pemain terhadap dunia game. Yang ketiga adalah state yang dihasilkan harus dapat
disampaikan sebagai output kepada pemain, output dapat berupa tampilan, audio, maupun bentuk output lainnya yang memungkinkan Sanchez Dalmau, 2004.
Dalam graphical user interface GUI yang sering ditemukan pada sistem operasi Windows atau Macintosh, sebagian besar isi tampilannya bersifat statis. Hanya
bagian kecil dari window yang tampilannya secara aktif berubah-ubah pada waktu tertentu. Karena hal tersebut, GUI ditampilkan pada layar dengan teknik yang disebut
rectangle invalidation, dimana hanya sebagian kecil dari layar yang isinya berubah yang perlu diubah tampilannya. Game 2D pada awalnya menggunakan teknik yang
serupa untuk meminimalisir jumlah pixel yang perlu ditampilkan. Namun, tampilan grafis pada game 3D real-time diimplementasi dengan cara
yang sama sekali berbeda. Seluruh isi yang ditampilkan pada layar akan berubah secara terus menerus ketika pemain bergerak dalam lingkungan 3D, sehingga konsep
rectangle invalidation tidak dapat lagi diterapkan. Sebagai gantinya, sebuah ilusi dari gerakan dapat dihasilkan dengan cara yang hampir sama dengan cara menghasilkan
ilusi gerakan pada sebuah film, yaitu dengan menampilkan kepada penonton rangkaian gambar diam yang bergantian secara cepat dan berurutan. Untuk
menghasilkan tampilan gambar diam yang bergantian secara cepat, dibutuhkan sebuah loop. Dalam real-time software, hal tersebut disebut juga sebagai render loop
Gregory, 2009.
2.3. Struktur Data dan Algoritma dalam Game