33 Gambar 3.8 merupakan flowchart permainan level 2. Jika permainan pada
level 2 telah selesai maka aplikasi akan menghitung nilai yang berhasil diperoleh pemain di level 2 kemudian akan menjalankan permainan level 3.
Gambar 3.8 Flowchart permainan level 2
34 Gambar 3.9 merupakan flowchart permainan level 3. Jika permainan pada
level 3 telah selesai maka aplikasi akan menhitung nilai dan memeriksa apakah permainan telah selesai dengan nilai tertinggi yang termasuk kedalam 15 besar nilai
tertinggi. Jika benar maka pengguna melakukan input nilai tertinggi.
Gambar 3.9 Flowchart permainan level 3
Perhitungan nilai pada permainan dilakukan dengan menghitung sisa waktu pemain saat menyelesaikan permainan. Sisa waktu dihitung dengan rumus :
nilai = menit 60 + detik 5 poin
35 Nilai pada setiap level akan diakumulasikan sehingga di akhir permainan akan
diperoleh total nilai yang diperoleh pemain.
3.2.2 Perancangan Alur Permainan
Pada tahap perancangan alur permainan, penulis akan menggambarkan bagaimana jalannya fungsi-fungsi utama yang dijalankan dalam program selama permainan
berlangsung. Fungsi-fungsi tersebut antara lain fungsi Mulai Baru, fungsi Bantuan dan fungsi Selesaikan.
3.2.2.1 Mulai Baru
Gambar 3.10 adalah flowchart Mulai Baru. Alur dimulai dengan memeriksa apakah permainan dalam keadaan paused atau apakah waktu permainan telah habis. Jika
benar maka proses akan berakhir, jika tidak maka program akan melakukan. Setelah itu program melakukan pengacakan huruf untuk ditampilkan pada setiap posisi huruf
acak pada grid. Kemudian program akan mengacak soal dan menentukan posisi masing-masing soal pada grid.
36
Gambar 3.10 Flowchart Mulai Baru
Adapun langkah-langkah dalam melakukan generate soal dalam fungsi Mulai Baru adalah sebagai berikut :
1. Lakukan random urutan soal agar untuk setiap permainan terdapat soal-soal
yang berbeda. 2.
Untuk setiap soal lakukan pengacakan posisi soal dengan cara random 8 arah yang memungkinkan.
3. Untuk setiap arah yang terpilih pilih salah satu index posisi huruf lalu periksa
apakah jumlah posisi yang terbentuk memungkinkan untuk dipakai sebagai posisi soal. Jika ya, maka cetak soal pada posisi tersebut. Jika tidak lakukan
dengan arah lain yang memungkinkan.
37 4.
Lakukan pengacakan huruf untuk mengisi sisa posisi yang tidak dipakai untuk meletakkan rangkaian huruf soal.
Untuk lebih jelasnya langkah-langkah generate soal dalam fungsi Mulai Baru dapat dilihat pada pseudocode berikut :
int idx ← Random100
if word[idx]==”” forint i=0; imaxsoal; i++
int acak
← Random8 switchacak
case0 :
if jumlah_kosong = jumlah_huruf cetak
ke arah
atas break
case1 :
if jumlah_kosong = jumlah_huruf cetak
ke arah
bawah break
case2 :
if jumlah_kosong = jumlah_huruf cetak
ke arah
kanan break
case3 :
if jumlah_kosong = jumlah_huruf cetak
ke arah
kiri break
case4 :
if jumlah_kosong = jumlah_huruf cetak ke arah kanan atas
break case5
: if jumlah_kosong = jumlah_huruf
cetak ke arah kiri atas break
case6 :
if jumlah_kosong = jumlah_huruf cetak ke arah kanan bawah
break case7
: if jumlah_kosong = jumlah_huruf
cetak ke arah kiri bawah break
endswitch endfor
endif foridx=0; i100; i++
if idx[word]==”” string char = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
idx[word] = char.sustrrndchar,1 endif
endfor
38
3.2.2.2 Bantuan
Gambar 3.11 adalah flowchart Bantuan. Alur dimulai dengan memeriksa apakah permainan dalam keadaan paused atau apakah waktu permainan telah habis. Jika
benar maka proses akan berakhir, jika tidak maka program akan melakukan disable tombol bantuan dan cnt_enable di-set 0. Tombol bantuan akan aktif enable jika
cnt_enable=15. Artinya tombol akan aktif setelah 15 detik. Setelah itu program akan memeriksa apakah jumlah jawaban yang terjawab lebih sedikit dari pada jumlah soal.
Jika benar, program akan memeriksa soal-soal yang belum terjawab kemudian mengacak soal-soal tersebut, jika tidak maka proses akan berakhir. Setelah salah satu
soal terpilih. Kemudian program akan memeriksa setiap index huruf pada grid mulai dari index ke-0 sampai index ke-99. Huruf pada index yang terpilih kemudian
dicocokkan dengan huruf pertama pada soal yang dicari. Jika huruf telah cocok kemudian akan diperiksa huruf seterusnya sesuai arah pencarian yang telah
ditentukan. Jika hasil pemeriksaan sama dengan soal maka soal telah ditemukan dan jumlah jawaban akan bertambah.