Anda di halaman 1dari 35

TUGAS BESAR – GAME LUDO

LAPORAN
Disusun Untuk Memenuhi Tugas Akhir Semester Mata Kuliah Dasar – Dasar Pemrograman

Disusun Oleh:

Herdhiantoko Fathani S. 151524014


Muhammad Edwin 151524021

PROGRAM STUDI D-4 TEKNIK INFORMATIKA


POLITEKNIK NEGERI BANDUNG
BANDUNG
2016
DESKRIPSI UMUM

1.1 Deskripsi Game Ludo Secara Umum

Permainan Ludo adalah permainan yang dimainkan oleh 4 pemain dengan masing-masing
pemain memiliki 4 bidak atau pion yang harus dikeluarkan satu demi satu dari base ke start, lalu
berjalan menuju home. Sebuah dadu digunakan untuk menentukkan banyaknya langkah yang
ditempuh oleh bidak pemain. Contoh dari papan permainan ludo bisa dilihat di gambar 1 dan
contoh untuk bidak atau pion beserta dadunya bisa dilihat di gambar 2.

Home Base

Gambar 1 Papan Permainan Ludo


Gambar 2 Pion dan Dadu

Pada awal permainan, semua bidak dari setiap pemain berada pada base masing-masing
pemain. Pemain yang mendapat giliran pertama ditentukan dari kesepakatan sebelumnya.
Kemudian pemain mengocok dadu dan memilih bidak mana yang akan dijalankan. Namun
sebelum bidak dijalankan dari start menuju home, bidak terlebih dahulu harus dikeluarkan dari
base menuju start. Bidak berjalan sesuai nilai yang muncul dari hasil kocokan dadu. Setiap pemain
bergantian melakukan hal ini hingga semua bidak masuk ke home.

Perjalanan dari start ke home melalui dua zona, yaitu sebagai berikut:

a. Zona jalan, zona jalan yaitu zona yang akan dilalui oleh hampir semua bidak dari semua
pemain. Zona ini berbelok-belok arahnya dan pada umumnya memiliki 52 petak mulai dari
start hingga perbatasan dengan zona aman. Setiap bidak akan melewati 51 petak untuk
menuju zona aman, satu petak sebelum petak start tidak dilalui karena bidak sudah belok
ke zona aman.
b. Zona aman, zona aman yaitu zona yang hanya bisa dilewati atau ditempati oleh bidak dari
pemain itu sendiri. Zona ini adalah zona untuk menuju ke home yang pada umumnya
memiliki 5 petak. Pergerakan pion dapat dilihat di gambar 3. Warna yang sesuai dengan
warna base merupakan zona aman. Sedangkan warna putih yang berpetak-petak
merupakan zona jalan.

Gambar 3 Zona Jalan Ludo | Sumber: pachisi.vegard2.net


DESKRIPSI APLIKASI

2.1 Cara Bermain

a. Permainan dimainkan oleh 4 pemain dimana pemain pertama adalah manusia / user, pemain
kedua, pemain ketiga, dan pemain keempat adalah komputer (AI). Ketiga komputer tersebut
memiliki kecerdasan yang sama yaitu menggunakan algoritma Greedy by Quick Move.
Algoritma Greedy by Quick Move ini adalah algoritma akan berusaha untuk menggerakkan
pion secepat mungkin menuju tujuan. Pemilihan pion yang akan digerakkan berdasarkan
prioritas. Prioritas tertinggi adalah pion yang dapat bergerak dan berada paling dekat dengan
tujuan. Dengan menggerakkan pion yang paling dekat dengan kotak tujuan, kita akan lebih
cepat mencapai tujuan. Selama pion yang paling dekat dengan kotak tujuan tidak terhalangi,
maka seluruh langkah yang dapat diambil akan digunakan untuk memajukan pion tersebut.
Jika tidak ada yang bisa bergerak maka algoritma akan menggerakkan pion lainnya sejumlah
angka yang tertera di dau atau sisa langkah yang dapat diambil.
b. Setiap pemain bergantian mengocok dadu, satu kali satu kali. Kecuali ketika seorang pemain
mendapatkan dadu bernilai 6 maka ia berhak satu kali lagi (berlaku pengulangan). Pemain
yang berhak mendapatkan giliran pertama mengocok dadu ditentukan sesuai kesepakatan
awal. Pada permainan ludo ini pemain berurutan mengocok dadu dari pemain pertama, pemain
kedua, pemain ketiga, hingga pemain keempat.
c. Untuk mengocok dadu mengeluarkan bidak dari base ke start, pemain harus mendapatkan
dadu bernilai 6. Jika tidak bernilai 6 maka bidak tidak bisa dikeluarkan.
d. Jika bidak sudah berada di start, maka langkah bidak sesuai dengan nilai kocokan dadu.
e. Jika mendapatkan kocokan dadu bernilai 6 dan bidak_A sudah keluar dari base, maka ada
pilihan akan menjalankan bidak_A sebanyak 6 langkah atau akan mengeluarkan bidak_B dari
base (pilihan ini berlaku kelipatan, sampai semua bidak keluar dari base).
f. Jika bidak yang berada di zona jalan lebih dari satu, maka ada pilihan akan menjalankan bidak
yang mana. Namun jika hanya bidak_A yang ada di area ‘jalan’ dan kocokan dadu bukan
bernilai 6, maka bidak_A akan berjalan sesuai dengan nilai kocokan dadu. Dan jika hanya
bidak_D yang ada di area ‘jalan’, maka bidak_D akan berjalan sesuai dengan berapapun nilai
yang keluar dari kocokan dadu.
g. Jika bidak seorang pemain berada pada suatu tempat di area ‘jalan’, kemudian bidak pemain
lain / lawan menempati tempat yang sama, maka tempat akan diambil alih oleh bidak pemain
lawan dan bidak seorang pemain itu akan kembali ke base. Namun jika bidak pemain itu
sendiri yang akan menempati tempat itu, maka bidak tidak bisa dijalankan. Dengan kata lain
tidak boleh atau tidak bisa ada dua bidak yang bertempat di petak yang sama, meskipun bidak
itu sama-sama dari satu pemain.
h. Bidak dikatakan memasuki home apabila bidak tepat masuk kedalam kotak home, tidak boleh
kurang maupun lebih. Jika lebih, misalnya bidak tinggal n langkah menuju home tapi nilai
dari kocokan dadu itu lebih besar dari n, maka bidak akan maju menuju home sebanyak n
langkah, dan mundur dari home sebanyak nilai kocokan dadu dikurangi n. Jika hal ini terjadi
dan kocokan dadu tidak tepat untuk memasukan bidak ke home, maka bidak akan ‘maju
mundur’.
i. Pemain dikatakan menang apabila pemain itu berhasil memasukan keempat bidaknya menuju
home pertamakali.

2.2 Game Over

Permainan dikatakan selesai apabila salah satu pemain telah memasukkan keempat
bidaknya ke home.

2.3 Instruction dan About

Instruction adalah daftar petunjuk untuk memainkan game ludo ini. Berikut daftar
instruksinya:

1. Permainan dilakukan oleh 4 pemain, dimana pemain 1 adalah manusia / user dan pemain
lainnya adalah komputer.
2. Setiap pemain memiliki 4 bidak yang harus dimasukan dari base ke start dan dari start ke
home.
3. Pemain yang berhasil memasukan keempat pionnya ke home adalah pemenangnya.
4. Selamat bermain... Apakah kamu bisa menjadi pemenang?

Sedangkan about adalah tentang siapa pembuat game ludo ini, yaitu Herdhiantoko Fathani S. dan
Muhammad Edwin.

2.4 Menu Utama

Menu utama adalah tampilan awal ketika program ini dijalankan. Daftar menu utama yang
ada di game ludo ini diantaranya yaitu sebagai berikut:

1. Play

2. Instruction

3. About

4. Exit
TEKNIS PERMAINAN

Peraturan Permainan

 Setiap pemain bermain secara bergilir yang dimulai dari pemain 1 (user)
 Untuk mengeluarkan pion dari base, pemain harus mendapatkan angka dadu 6
 Jika pemain mendapatkan angka 6, maka pemain dapat melempar dadu dan bermain
sekali lagi
 Jika pion berhasil keluar dari base, pion tersebut harus menempati posisi awal yang telah
ditentukan terlebih dahulu
 Pion harus bergerak melewati jalur yang telah ditentukan
 Tidak boleh ada 2 pion dalam 1 posisi yang sama
 Permainan berakhir apabila salah satu pemain telah memasuki seluruh pionnya ke dalam
Home

Aplikasi Permainan

1. Giliran Pemain

Setiap pemain akan bergantian dalam menggerakkan bidaknya, giliran pertama di berikan
kepada pemain 1 atau user, kemudian dilanjutkan giliran selanjutnya pemain 2, pemain 3,
dan pemain 4. Metode dalam melakukan giliran di program ini menggunakan operasi
matematika “modulus” dengan variabel penentu giliran merupakan variabel i.
Pemain ke-1 (USER) Pemain ke-2 (KOMPUTER)

Pemain ke-4 (KOMPUTER) Pemain ke-3 (KOMPUTER)

Gambar 4 Posisi Base Tiap Pemain

Gambar diatas merupakan penempatan posisi Base tiap-tiap pemain. Tiap pemain bermain
secara bergilir yang telah ditentukan pemain ke-1 bermain pertama. Pergiliran pemain
tersebut ditentukan dengan notasi algoritma dengan metode seperti yang telah dijelaskan
diatas.

i0

Selama belum ada pemenang lakukan

i  i mod 4

Player i bermain

i=i+1
2. Mengeluarkan Pion dari Base

Untuk mengeluarkan pion dari base, pemain harus mendapatkan angka dadu 6. Jika seluruh
pion masih di dalam base dan belum mendapatkan angka dadu 6, maka pemain tidak dapat
menggerakkan pionnya dan harus menunggu giliran selanjutnya untuk mencoba
mendapatkan angka dadu 6. Pemain dapat memilih pion yang manakah yang akan
dikeluarkan dari base, di awal permainan terdapat 4 pion pada tiap-tiap pemain, pemain dapat
memilih pion yang akan dikeluarkan dengan cara menginputkan angka pion tersebut saat
mendapatkan angka dadu 6

Pion ke-1 Pion ke-2

Pion ke-3 Pion ke-4

Gambar 5 Urutan Pion Tiap Pemain

Semua pion pada tiap pemain memiliki posisi yang sama seperti gambar diatas. Di bagian
kiri-atas pion ke-1, bagian kanan-atas pion ke-2, bagian kiri-bawah pion ke-3, dan bagian
kanan-bawah pion ke-4.

3. Mendapat Giliran Tambahan jika Mendapatkan Angka Dadu 6

Jika pemain mendapatkan angka dadu 6, maka pemain tersebut mendapatkan giliran
tambahan, sehingga dapat melakukan lempar dadu dan menggerakan pion lagi. Jika pemain
selalu mendapatkan angka 6 hingga akhir permainan, maka pemain tersebut sangat beruntung
namun sangat kecil kemungkinannya untuk terjadi hal seperti itu.
4. Pion Menempati Posisi Awal jika Berhasil Keluar dari Base

Apabila pemain mendapatkan angka dadu 6 kemudian memilih untuk mengeluarkan pion
dari base, maka pion tersebut tidak berjalan sejauh 6 langkah, melainkan pion tersebut harus
berada pada posisi awal (posisi start) dari pemain.

Posisi Start

Posisi Start

Posisi Start

Posisi Start
Gambar 6 Posisi Start Tiap Pemain

Gambar ini merupakan posisi start tiap-tiap pemain. Walaupun pion harus berada di posisi
start pada saat baru keluar dari base, namun karena mendapatkan angka dadu 6, maka pemain
bisa melempar dadu lagi untuk menggerakkan pion yang baru saja keluar dari base tersebut.
5. Pion Bergerak Sesuai dengan Jalur yang Telah Ditentukan

Setelah pion keluar dari base untuk mencapai Home, pion harus melewati jalur-jalur yang
telah ditentukan. Terdapat 2 jenis jalur dalam permainan ini yaitu “Zona Jalur” dan “Zona
Aman”. Zona Jalur adalah tempat yang dapat dilewati oleh semua pion tiap-tiap pemain,
sehingga ada kemungkinan pion menendang (kick) atau ditendang (kicked) oleh pion pemain
lain di zona ini.

Gambar 7 Zona Jalur

Gambar diatas ini merupakan zona jalur yang akan dilewati pion-pion tiap pemain. Terlihat
bahwa posisi start pemain 1 (merah) berada pada zona jalur ke-1, zona jalur ke-0 pada
gambar diatas merupakan “zona mati” bagi pemain 1 karena pemain 1 tidak akan melewati
jalur itu. Pion pemain 1 harus bergerak mengikuti urutan angka zona jalur pada gambar
diatas. Setelah melewati zona jalur ke-51, pion pemain 1 selanjutnya akan memasuki Zona
Aman dimana di Zona ini, hanya pemain pemilik Zona Aman saja yang dapat melewatinya,
sehingga tidak akan terjadi pion saling menendang (kick) ataupun ditendang (kicked) oleh
pion pemain lain. Aturan ini berlaku untuk semua pemain, tidak hanya pemain 1 saja

Terlihat pada gambar diatas, tiap-tiap pemain memiliki zona start yang berbeda-beda. Zona
start pemain 1 berada pada zona jalur ke-1, pemain 2 pada zona jalur ke-14, pemain 3 pada
zona jalur ke-27, dan pemain 4 pada zona jalur ke-40. Terdapat pola untuk menunjukkan
dimanakah posisi start tiap-tiap pemain yang dapat dirumuskan dengan operasi matematika.
Sehingga didapat rumusan:

Posisi Start Pemain ke - i = 1 + 13 * ( i – 1)

Dimana i = indeks pemain

Dari rumusan tersebut didapat posisi start:

 Pemain ke-1 = 1 + 13 * (1-1) = 1 + 13 * 0 = 1


 Pemain ke-2 = 1 + 13 * (2-1) = 1 + 13 * 1 = 14
 Pemain ke-3 = 1 + 13 * (3-1) = 1 + 13 * 2 = 27
 Pemain ke-4 = 1 + 13 * (4-1) = 1 + 13 * 3 = 40

Sekali lagi, Zona Aman merupakan tempat yang hanya bisa dilewati oleh pemilik Zona
Aman tersebut, sehingga tidak akan terjadi pion menendang (kick) atau ditendang (kicked) di
zona ini.
Gambar 8 Zona Aman Tiap Pemain

Gambar diatas merupakan Zona Aman yang dimiliki oleh tiap-tiap pemain. Warna pada zona
tersebut merupakan tanda kepemilikan pemain dengan warna yang sama. Zona Aman yang
berwarna merah merupakan Zona Aman milik pemain dengan warna merah (player 1), Zona
Aman yang berwarna kuning merupakan Zona Aman milik pemain dengan warna kuning
(player 2), dan begitu juga dengan pemain biru ataupun hijau.

Terlihat pada gambar diatas bahwa Zona Aman tersebut dimulai dari Zona Aman ke-52
karena Zona Aman ini melanjutkan perjalanan dari Zona Jalan yang berakhir di Zona Jalan
ke-51. Apabila pemain mendapatkan angka dadu yang melebihi angka 1 (misal 4) jika pion
pemain tersebut sedang berada di Zona Jalur ke-50, maka pion tersebut akan langsung
diarahkan sesuai angka dadu yaitu 50 + 4 (diambil dari permisalan) yaitu 54, sehingga pion
itu akan berada pada Zona Aman ke-54. Untuk contoh, perhatikan gambar dibawah ini.
Gambar 9 Pergerakan dari Zona Jalan ke Zona Aman

Home merupakan posisi ke-57. Home ini tidak termasuk ke dalam Zona Jalan ataupun Zona
Aman. Apabila pion mendapatkan angka dadu yang pas untuk memasuki Home, maka pion
tersebut akan hilang dan dinyatakan telah memasuki Home. Contoh pada gambar diatas,
apabila pemain tersebut (pemain merah) melempar dadu lagi dan mendapatkan angka 3,
maka pion tersebut sudah dinyatakan memasuki Home, dan kemudian pion tersebut akan
hilang dari papan permainan. Tetapi jika mendapatkan angka dadu lebih dari 3 maka pion
akan kembali dengan berjalan mundur sesuai dengan sisa angka dadu setelah dikurangi
jumlah langkah pion tersebut menuju ke Home. Untuk contoh, perhatikan gambar berikut.

1 2 3

Gambar 10 Pergerakan jika Angka Dadu Melebihi Home


Pada gambar diatas, saat pemain mendapatkan angka dadu 4, maka pion bergerak 3 langkah
karena pion hanya membutuhkan 3 langkah untuk sampai ke Home, namun saat sampai di
Home, masih ada sisa 1 angka dadu lagi, sehingga angka tersebut harus ditanggung pion
dengan berjalan mundur dan menempatkan posisi ke-56.

6. Tidak Boleh Ada 2 Pion dalam 1 Posisi yang Sama

Saat pemain melemparkan dadu kemudian mendapatkan angka dadu, tetapi saat ingin
menjalankan pion, ternyata posisi Zona Jalur yang akan ditempati pion pemain tidak kosong.
Jika keadaannya seperti itu, maka ada 2 kemungkinan yang akan terjadi.

 Posisi Zona Jalur yang akan ditempati pion pemain telah ditempati oleh salah satu
pion dari pemain itu sendiri

Jika seperti ini keadaannya, maka pemain harus menggerakkan pion yang lainnya.
Karena tidak boleh ada 2 pion dalam 1 posisi yang sama, jadi menggerakkan pion
yang lainnya merupakan satu-satunya cara untuk mengatasi aturan ini.

Pion ke-1
Pion ke-1

Pion ke-2 Pion ke-2


Gambar 11 Menggerakan Pion ke Pion Teman

Pada gambar diatas, terlihat bahwa pemain mendapatkan angka dadu 3. Dalam kasus
ini pemain tidak dapat menggerakkan pion ke-2 karena jika pion ke-2 digerakkan,
maka posisi pion ke-2 akan sama pion ke-1, sehingga pemain diharuskan untuk
menggerakkan pion ke-1 supaya tidak ada posisi pion yang sama.

 Posisi Zona Jalur yang akan ditempati pion pemain telah ditempati oleh pion pemain
lain

Jika seperti ini keadaannya, maka pion pemain yang menempati posisi itu lebih dulu
harus kembali ke base karena pion tersebut telah ditendang (kicked) oleh pemain
yang ingin menempati (mengambil alih) posisi tersebut.

Gambar 12 Menendang Pion Lawan (Kick) ke Base

Gambar diatas merupakan giliran pemain biru (pemain 4) yang mendapatkan angka
dadu 3. Pemain biru menjalankan pionnya, namun terdapat pion merah yang terlebih
dahulu menempati tujuan si pion biru, sehingga pion merah akan ditendang (kick)
oleh pion biru kemudian pion merah kembali ke basenya dan pion biru menempati
posisi pion merah sebelumnya (sebelum ditendang oleh pion biru).

7. Berakhirnya Permainan

Permainan akan berakhir jika seluruh pion dari salah satu pemain telah berhasil mencapai
Home. Dalam permainan ini hanya terdapat 1 pemenang, jadi membutuhkan strategi yang
baik untuk memenangkan permainan ini. Setelah salah satu pemain memenangkan
permainan, akan muncul teks yang diberikan untuk pemenang permainan sebagai ucapan
selamat.
KEBUTUHAN DATA

3.1 Variabel yang Digunakan


Beberapa variable yang digunakan dalam permainan ludo ini akan menyimpan berbagai
macam data yang akan diperlukan dalam proses permainan, diantaranya adalah:

Nama Variabel Tipe Data Deskripsi


Board[][] char Untuk menampung papan
permainan. Segala aktivitas
permainan terdapat pada
variabel papan ini.
Players[4] player Untuk menampung
keterangan tentang pemain.
pionPosition[52] position Untuk menampung segala
koordinat papan yang dapat
di pijak oleh pion.
safeZone[4][5] position Untuk menampung
koordinat papan yang
berupa zona aman bagi
pion.
dice int Untuk menyimpan nilai
dadu yang akan diisi dengan
angka random dari 1 sampai
6 tiap gilirannya.
i int Untuk menentukan giliran
pemain yang akan bermain.
choosen int Untuk menentukan pion
yang manakah yang akan
dijalankan setelah pemain
melemparkan dadu.
back Int Untuk menentukan pion
manakah yang akan di
kembalikan ke base apabila
telah ditendang oleh pemain
lain.
temp position Untuk menyimpan
koordinat awal dari sebuah
pion sebelum dijalankan.

3.2 User-Defined Type yang Digunakan


Dari keterangan tentang variabel pada subbab 3.1, terdapat tipe data buatan yang
dimasukkan ke dalam program. Tipe data tersebut berisikan informasi tentang data yang
diwakilkan oleh nama tipe tersebut. Berikut adalah macam-macam tipe data buatan yang terdapat
dalam permainan ludo ini:

Nama Tipe Data Isi Deskripsi


Tipe Data Nama Variabel
player pions pion Berisi data tentang
pion-pion pada tiap
player.
int home Berisi data jumlah
pion player yang
telah masuk ke
home
int base Berisi data jumlah
pion player yang
masih berada di
dalam base
pions char pion Berisi karakter dari
pion suatu player.
Tiap player
memiliki karakter
yang berbeda-beda
position homepos Berisi data
koordinat posisi
base suatu pion
Int Row Berisi koordinat
baris saat ini dari
pion
Int Col Berisi koordinat
kolom saat ini dari
pion
Int Step Berisi data berapa
langkah suatu pion
telah berjalan.
Bool Movable Berisi keterangan
apakah pion dapat
dijalankan atau
tidak
position Int Row Berisi koordinat
baris pada suatu
papan yang dapat
dilangkahi oleh
pion
Int Col Berisi koordinat
kolom pada suatu
papan yang dapat
dilangkahi oleh
pion
3.3 Modul yang Digunakan
Dalam permainan ludo ini, terdapat berbagai macam modul yang digunakan dengan
kegunaan yang berbeda-beda. Tiap-tiap modul ada yang saling berkerja sama dan juga ada yang
bekerja sendiri. Berikut adalah modul-modul yang terdapat dalam permainan ludo ini:

Procedure showInstruction()
Deskripsi Berisi kumpulan instruksi / petunjuk
bagaimana cara memainkan game ludo ini.
Initial State Layar kosong
Final State Layar menampilkan petunjuk cara
memainkan game ludo
Algoritma:
Procedure showInstruction()
Write (instruction.txt)
End Procedure Instruction

Procedure showAbout()
Deskripsi Berisi informasi tentang pembuat game ini
Initial State Layar kosong
Final State Layar menampilkan informasi pembuat
game ini
Algoritma:
Procedure showAbout()
Write (about.txt)
End Procedure About
Function rollDice()  Integer
Deskripsi Fungsi ini untuk melempar dadu
Input
Output Menghasilkan angka random dari 1 - 6 yang
bekerja seperti dadu.
Algoritma:
Function rollDice()
Dice = (rand (i) mod 6)) + 1
Return Dice
End Function rollDice

Procedure fillPionPosition()
Deskripsi Mengisi data koordinat baris & kolom ke
dalam variabel pionPosition
Initial State Variabel pionPosition belum terisi
Final State Variabel pionPosition terisi oleh data-data
tertentu
Algoritma:
Procedure fillPionPosition()
Untuk 1 sampai 52 lakukan
pionPosition  koordinat jalan
End Procedure fillPionPosition
Procedure movePion()
Deskripsi Menjalankan bidak sesuai dengan angka
dadu
Initial State Bidak berada di posisi awal
Final State Bidak bergerak dari posisi awal sejauh
beberapa langkah tergantung angka dadu
Algoritma:
Procedure movePion()
Temp  koordinat awal pion sebelum bergerak
Papan pada posisi temp + dadu  karakter pion
Papan pada posisi temp  karakter spasi ‘ ’
End Procedure move

Procedure fillSafeZonePosition()
Deskripsi Mengisi data koordinat baris & kolom ke
dalam variabel safeZonePosition
Initial State Variabel safeZonePosition belum terisi
Final State Variabel safeZonePosition terisi oleh data-
data tertentu
Algoritma:
Procedure fillSafeZonePosition()
Untuk player 1 sampai 4 lakukan
Untuk 1 sampai 5 lakukan
safeZonePosition  koordinat Zona Aman tiap player
End Procedure fillSafeZonePosition
Function gameOver() -> Boolean
Deskripsi Menentukan apakah pemain sudah menang
atau belum
Input Home tiap player
Output .true. jika Home pemain = 4
Algoritma:
Function gameOver()
Jika salah satu Home dari player = 4 maka
Return .true.
End Function gameOver

Procedure setBoard()
Deskripsi Membentuk papan permainan
Initial State Kosong
Final State Papan permainan terbentuk dari sebuah
Array 2 Dimensi
Algoritma:
Procedure setBoard()
Untuk setiap garis pada papan permainan lakukan
Board  karakter ‘ ▪ ’
End Procedure setBoard

Procedure refreshBoard()
Deskripsi Memperbarui kondisi posisi-posisi bidak
pada papan permainan
Initial State Papan permainan berada dalam kondisi awal
Final State Papan permainan di update setiap setelah
pemain menjalankan bidaknya sehingga
posisi bidak yang tampil dalam layar
berpindah
Algoritma:
Procedure refreshBoard()
Bersihkan layar
Write (layar) board
End Procedure refreshBoard

Procedure setPion()
Deskripsi Memberikan data-data pion tiap player
Initial State Data pion belum terisi
Final State Data pion telah terisi
Algoritma:
Procedure setPion()
Untuk setiap player lakukan
Home  0
Base  0
Untuk setiap pion lakukan
Posisi  koordinat base
Langkah  0
Bisa bergerak  .false.
End Procedure setPion

Procedure identifyPion()
Deskripsi Memeriksa pion manakah yang akan
ditendang (kick) ke Base
Initial State Tidak tau urutan pion musuh yang akan
ditendang (kick)
Final State Urutan pion musuh yang akan ditendang
(kick) diketahui
Algoritma:
Procedure identifyPion()
Untuk setiap pion lawan lakukan
Jika posisi pion lawan = posisi pion pemain + dadu maka
Return urutan pion lawan
End Procedure identifyPion

Procedure identifyPionFromBase()
Deskripsi Memeriksa pion manakah yang akan
ditendang (kick) ke Base (jika posisi awal
pion pemain berada pada Base)
Initial State Tidak tau urutan pion musuh yang akan
ditendang (kick)
Final State Urutan pion musuh yang akan ditendang
(kick) diketahui
Algoritma:
Procedure identifyPionFromBase()
Untuk setiap pion lawan lakukan
Jika posisi pion lawan = posisi start pion pemain maka
Back  urutan pion lawan
Return Back
End Procedure identifyPionFromBase
Procedure eatPion()
Deskripsi Menempatkan pion yang ditendang (kick) ke
Base
Initial State Tiap pion berada pada posisinya masing-
masing
Final State Pion yang tertendang (kick) oleh pion musuh
lain akan berpindah posisi ke Basenya
Algoritma:
Procedure eatPion()
Temp  posisi awal pion player
identifyPion()
Pindahkan pion lawan ke Basenya
Base pemain lawan +1
movePion()
End Procedure eatPion

Procedure win()
Deskripsi Menampilkan pemenang permainan
Initial State Layar kosong
Final State Layar menampilkan pemenang permainan
Algoritma:
Procedure win()
Write (win.txt)
End Procedure win

Procedure eatPionFromBase()
Deskripsi Menempatkan pion yang ditendang (kick) ke
Base (jika posisi awal pion pemain berada
pada Base)
Initial State Tiap pion berada pada posisinya masing-
masing
Final State Pion yang tertendang (kick) oleh pion musuh
lain akan berpindah posisi ke Basenya
Algoritma:
Procedure eatPion()
Temp  posisi awal pion player
identifyPionFromBase()
Pindahkan pion lawan ke Basenya
Base pemain lawan +1
movePion()
End Procedure eatPion

Procedure playGame()
Deskripsi Memulai permainan dan menjalankan segala
modul-modul diatas
Initial State Permainan belum dimulai
Final State Permainan dimulai
Algoritma:
Procedure playGame()
Selama belum gameOver() lakukan
Jalankan modul-modul diatas
End Procedure playGame
PENGUJIAN PERMAINAN

Gambar 13 Tampilan Menu

Gambar 14 Tampilan Instruction


Gambar 15 Tampilan About

Gambar 16 Tampilan Proses Permainan


Gambar 17 Tampilan Pemenang
LESSON LEARNED
Banyak hal yang kami pelajari dari tugas besar membuat games ini. Diantaranya yaitu
sebagai berikut:

1. Pentingnya membuat desain dan skenario awal sebuah aplikasi / games. Hal ini
memudahkan langkah apa yang selanjutnya akan kami kerjakan.
2. Selain menentukan modul apa saja yang akan dipakai dalam pembuatan games ini,
menentukan parameter dari modul-modul tersebut merupakan hal yang penting juga
3. Lebih memahami data record dan penggunaannya. Salah satunya yaitu penggunaan
record dalam record.
4. Pengetahuan baru tentang source code yang kita buat bisa dipisahkan menjadi liblary
baru.
5. Pentingnya menggunakan nama variabel / naming variable yang bagus dan nama
procedure / function yang bagus pula (Clean code).
6. Pentingnya menambahkan komentar di dalam source code kita, supaya orang lain dapat
paham source code yang kita buat.
DAFTAR PUSTAKA

Kemit, L. F., 2011. Penentuan Langkah dengan Greedy dalam Permainan Ludo. Makalah IF3051
Strategi Algoritma - Sem. I Tahun 2011/2012, Program Studi Teknik Informatika, Sekolah
Teknik Elektro dan Informatika, Institut Teknologi Bandung.

Anda mungkin juga menyukai