Manual Book of Game Matches

19
U N I V E R S I T A S G U N A D A R M A PRAKTIKUM PENGANTAR KECERDASAN BUATAN Ditulis Guna Melengkapi Sebagian Syarat Praktikum Pengantar Kecerdasan Buatan Jenjang S1 Universitas Gunadarma 2013 MANUAL BOOK “Flamingo Fish” Nama : Prastika Dedyana NPM : 55411559 Fakultas : Teknologi Industri Jurusan : Teknik Informatika Penanggung Jawab : Andi Shahreza

Transcript of Manual Book of Game Matches

U N I V E R S I T A S G U N A D A R M A

PRAKTIKUM PENGANTAR KECERDASAN BUATAN

Ditulis Guna Melengkapi Sebagian Syarat

Praktikum Pengantar Kecerdasan Buatan Jenjang S1

Universitas Gunadarma

2013

MANUAL BOOK

“Flamingo Fish”

Nama : Prastika Dedyana

NPM : 55411559

Fakultas : Teknologi Industri

Jurusan : Teknik Informatika

Penanggung Jawab : Andi Shahreza

1

DAFTAR ISI

Bahasa dan Program Editor ................................................................................................ 2

Initial State .......................................................................................................................... 2

Rules ................................................................................................................................... 5

Goal .................................................................................................................................... 6

Konsep AI ............................................................................................................................ 8

Listing Program ................................................................................................................... 9

Ouput Program .................................................................................................................. 14

Daftar Pustaka .................................................................................................................. 17

Glosarium .......................................................................................................................... 18

2

BAHASA DAN PROGRAM EDITOR

Permainan Flamingo Fish ini merupakan sebuah permainan yang

menggunakan bahasa pemrograman prolog. Kemudian perangkat lunak yang

digunakan sebagai program editornya adalah Strawberry Prolog. Permainan

Flamingo Fish ini merupakan suatu permainan yang diadaptasi dari permainan

matches yang terdapat dalam Strawberry Matches.

INITIAL STATE

Permainan Flamingo Fish ini merupakan suatu permainan logika dimana user

(pemain) melawan komputer untuk memenangkan permainan ini. Game ini melatih

dan mengasah otak user untuk berpikir mengenai strategi yang digunakan agar

dapat mengalahkan komputer. Pemain harus dapat menerapkan strategi yang tepat

untuk memenangkan permainan ini.

Gambar 1. Tampilan awal game “Flamingo Fish”

Initial State yang digunakan sebagai acuan untuk membuat aplikasi Flamingo

Fish adalah background yang digunakan sebagai papan permainannya dengan

ukuran dimensi 750x460. Objek yang digunakan sebagai shape yaitu sebuah gambar

ikan berukuran dimensi 50x28 berjumlah 12 untuk level easy, 18 untuk level

medium, dan 24 untuk level hard. Gambar ikan tersebut diubah guna untuk

3

menggantikan objek korek api pada matches yang sesungguhnya. Pada permainan

ini, ikan pada setiap level akan bertambah dan bentuknya pun akan berubah. Pada

permainan tersebut, terdapat pula beberapa menu, yaitu :

1) Level : Terdapat tiga level yang dapat dipilih oleh user dalam memainkan

permainan tersebut, yaitu Easy, Medium, dan Hard.

2) Musik : Menu musik ini berfungsi sebagai media yang dibuat agar user dapat

mendengarkan musik saat bermain agar tidak bosan. Musik yang disediakan

berjumlah 3 lagu, yaitu Moondance – Michael Buble, Sunrise – Norah Jones,

dan Hot Air Balloon – Owl City.

3) Instruction : Berisi mengenai rules singkat yang digunakan untuk memainkan

permainan Flamingo Fish.

4) About Me : Berfungsi sebagai penampil identitas dari pengembang (editor)

game Flamingo Fish.

5) Exit : Menu ini digunakan untuk mengakhiri dan keluar dari permainan.

Formasi yang digunakan pada setiap level berbeda-beda. Berikut ini adalah

tampilan dari setiap level :

1. Level Easy

Gambar 2. Susunan Level Easy

4

2. Level Medium

Gambar 3. Susunan Level Medium

3. Level Hard

Gambar 4. Susunan Level Hard

5

RULES

Rules atau aturan main yang digunakan pada permainan Flamingo Fish ini adalah

sebagai berikut :

1. Permainan ini diawali dengan memilih level sesuai dengan yang user

inginkan. Jika user belum pernah bermain game seperti ini, user disarankan

untuk memilih level easy.

2. Jika user ingin mendengarkan musik saat bermain, maka user dapat meng-

klik menu “Musik” dan memilih lagu yang dinginkan. Kemudian akan muncul

jendela windows media player untuk memutar lagu yang dipilih oleh user.

3. Setelah itu, user diberikan kebebasan untuk memulai game dengan cara

memilih dan meng-klik ikan yang tersedia, dan selanjutnya akan diteruskan

oleh AI (lawan).

4. Pemain dapat mengambil objek ikan sebanyak mungkin dengan syarat ikan

tersebut masih dalam satu kolom dengan susunan objek ikan yang dipilih.

5. Jumlah ikan yang diambil dapat ditentukan dengan cara perhitungan dari

puncak kolom dan mengklik batas dasar jumlah ikan yang berada

dibawahnya.

6. AI akan melakukan pembelajaran untuk menghalangi user untuk tidak

mencapai Goal (tujuan). AI juga melakukan pembelajaran untuk

memenangkan permainan ini guna menyingkirkan user.

7. Goal (tujuan) dari game ini adalah berusaha untuk tidak mengambil sisa ikan

yang terakhir.

6

GOAL

Goal untuk menyelesaikan game Flamingo Fish pada strawberry prolog ini

adalah pemain harus terlebih dahulu mengambil objek yang ada dan dalam

pengambilan objek tersebut, jumlah objek yang akan diambil tidak dibatasi. Hal yang

harus dilakukan adalah membuat lawan untuk tidak mendahului pemain sebelum

pemain melakukan pengambilan objek tersebut. Pemain akan kalah apabila pemain

mengambil objek yang paling akhir. Berikut ini adalah gambaran untuk goal dari

permainan flamingo fish :

Gambar 5. Tampilan pada saat user memenangkan permainan

7

Gambar 6. Tampilan pada saat user kalah dalam permainan

8

KONSEP AI

Artificial Intelligence atau AI dalam bahasa Indonesia artinya Kecerdasan

Buatan yaitu kecerdasan yang ditunjukkan oleh suatu entitas ilmiah. Kecerdasan

dibuat dan dimasukkan ke dalam suatu mesin atau komputer supaya bisa melakukan

pekerjaan seperti yang bisa dikerjakan oleh manusia. Contohnya adalah kemampuan

untuk menjawab diagnosa dan pertanyaan pelanggan, perencanaan dan

penjadwalan, pengendalian, serta pengenalan tulisan tangan, suara dan wajah. Hal-

hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian

pada penyediaan solusi masalah di kehidupan yang nyata. Terdapat macam-macam

bidang yang menggunakan kecerdasan buatan diantaranya yaitu: game komputer,

sistem pakar, jaringan syaraf tiruan, logika fuzzy dan robotika.

Kecerdasan buatan atau yang sering disebut dengan AI pada game ini terletak

pada komputer yang akan bertindak sebagai lawan. Komputer akan selalu berusaha

mengalahkan user. Komputer dapat menyusun strateginya sendiri agar menjadi

pemenang. Permainan Flamingo Fish ini menggunakan algoritma-algoritma sebagai

berikut :

1) Backtracking

Algoritma yang digunakan untuk mencari solusi yang lebih mangkus dengan

berbasis pada DFS. Backtracking bisa dikatakan sebagai perbaikan dari

algoritma brute force dan exhaustive search, yang secara sistematis mencari

solusi persoalan diantara semua kemungkinan yang ada. Semua kemungkinan

solusi dibuat dalam bentuk pohon (tree) terlebih dahulu, kemudian dengan

menggunakan metode DFS dilakukan pencarian sampai solusi ditemukan.

2) DFS

Pencarian mendalam pertama. Pada DFS, proses pencarian akan dilakukan

pada semua anaknya sebelum dilakukan ke node-node yang selevel.

Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi

terus hingga ditemukannya solusi.

9

LISTING PROGRAM

?-

G_Comp_First=0,

G_Take_Last=0,

G_background is bitmap_image("Image\\bg.bmp",_),

G_fish is bitmap_image("Image\\cartoon-fish.bmp",_),

pen(0,0),

window_n(G_Main, _, win_func, "Flamingo Fish",

100,100,770,525,_,_,rgb(255,255,255)),

message("Flamingo Fish", "Welcome, please help me to

find fishes but please do not take the last one or I will

die.", i),

write("OK"),nl.

% Membuat menu tab

win_func(init) :-

menu( pop_up, _, _, menu_level(_), "&Level"),

menu( pop_up, _, _, menu_music(_), "&Music"),

menu( normal, _, _, menu_help(_), "&Instruction"),

menu( normal, _, _, menu_about(_), "&About Me"),

menu( normal, _, _, menu_exit(_), "&Exit").

% Membuat menu untuk level

menu_level(init):-

menu(normal,_,_,menu_easy(_),"&Easy"),

menu(normal,_,_,menu_medium(_),"&Medium"),

menu(normal,_,_,menu_hard(_),"&Hard").

% Membuat menu untuk music

menu_music(init):-

menu(normal,_,_,menu_music1(_),"&Moondance"),

menu(normal,_,_,menu_music2(_),"&Sunrise"),

menu(normal,_,_,menu_music3(_),"&Hot Air Balloon").

% Menu Easy

menu_easy(press) :-

(G_Comp_First=0->

set(pos([1,2,3,3,2,1]))

else

Pos=[1,2,3,3,2,1],

N is 2*random(1),

el(Pos,A, N),

A2 is A - 4,

replace(Pos2, Pos, A2, N),

set(pos(Pos2))),

update_window(_).

10

% Menu Medium

menu_medium(press) :-

(G_Comp_First=0->

set(pos([2,3,4,4,3,2]))

else

Pos=[2,3,4,4,3,2],

N is 2*random(3),

el(Pos,A, N),

A2 is A - 3,

replace(Pos2, Pos, A2, N),

set(pos(Pos2))),

update_window(_).

% Menu Hard

menu_hard(press) :-

(G_Comp_First=0->

set(pos([5,4,3,3,4,5]))

else

Pos=[5,4,3,3,4,5],

N is 2*random(5),

el(Pos,A, N),

A2 is A - 1,

replace(Pos2, Pos, A2, N),

set(pos(Pos2))),

update_window(_).

% Memanggil & menampilkan isi dari sub menu "Music"

menu_music1(press) :-

shell_execute("Music\\15 Moondance.mp3").

menu_music2(press) :-

shell_execute("Music\\Sunrise.mp3").

menu_music3(press) :-

shell_execute("Music\\Owl City - Hot Air Balloon.mp3").

% Memanggil gambar sebagai background

win_func(paint):-

draw_bitmap(0,0,G_background,_,_),

pos(Pos),

el(Pos,El,N),

for(I,1,El),

% Jarak antara masing-masin item

X is 100+100*N,

Y is 255-40*I,

% Untuk bentuk item

draw_bitmap(X,Y,G_fish,_,_),

fail.

11

% Area mouse click

win_func(mouse_click(X,Y)):-

X1 is (X-50)//100,

Y1 is (255-Y)//40,

X1=<6,X>=40,

pos(Pos),

el(Pos,El,X1),

El>Y1,

replace(Pos2, Pos, Y1, X1),

rect(100*X1+40,0,100*X1+40,265- 40*Y1),

(Pos2=[0,0,0,0,0,0]->

set(pos(Pos2)),

end(0)

else

wait(0.5),

play(Pos3, Pos2),

(Pos3=[0,0,0,0,0,0]->

end(1)),

set(pos(Pos3))),

update_window(_).

win_func(mouse_click(X,Y)):-

beep.

% Inti program AI

play(Pos3, Pos2):-

G_Take_Last=0,

count_successes(not_trivial(Pos2))<2,

find_max(Pos2,Max,N),

New is (Max>1,count_successes(not_empty(Pos2)) mod

3=:=1 -> 1 else 0),

replace(Pos3, Pos2, New, N).

play(Pos3, Pos2):-

el(Pos2,A, N),

R:=0,

add_xor(R,Pos2,N),

R<A,

replace(Pos3, Pos2, R, N).

play(Pos3, Pos2):-

find_max(Pos2,Max,N),

Max2 is (Max>1, random(2)=:=0 ->

Max - 2

else

Max - 1),

replace(Pos3, Pos2, Max2, N).

not_empty(Pos):-

el(Pos,A, _),

A>0.

not_trivial(Pos):-

12

el(Pos,A, _),

A>1.

el([H|T],H,0).

el([H|T],El,N):-

el(T,El,N1),

N is N1+1.

replace([H|T],[_|T],H,0).

replace([H|T2],[H|T],El,N):-

replace(T2,T,El,N1),

N is N1+1.

find_max([H],H,0).

find_max([H|T],A, N) :-

find_max(T,A1,N1),

(A1<H->

A is H,

N is 0

else

A is A1,

N is N1+1).

add_xor(_,[],_):-!.

add_xor(R,[H|T],0):- !,

add_xor(R, T, -1).

add_xor(R,[H|T],N):-

N1 is N- 1,

R:=R xor H,

add_xor(R, T, N1).

end(Flag):-

Flag=G_Take_Last->

message("Sorry","You lose the game",i)

else

message("Congratulation","You are the winner",!).

% Deklarasi menu help

menu_help(press) :-

message("Instruction","Click under the fishes which you

want to take. You can take how much you want but only

from one column.", i).

% Deklarasi menu about

menu_about(press):-

message("About Me"," Game Prolog : Flamingo Fish

\n Kelas : 3IA15 \n NPM : 55411559 \n Create

By : Prastika Dedyana \n\n UNIVERSITAS

GUNADARMA", i).

13

% Deklarasi menu exit

menu_exit(press) :-

message("Exit","Thank you for playing Flamingo

Fish.",i),

write("OK"),nl,

close_window(_).

14

OUTPUT PROGRAM

Gambar 7. Tampilan menu level

Gambar 8. Tampilan menu musik

15

Gambar 9. Tampilan menu instruction

Gambar 10. Tampilan menu about me

16

Gambar 11. Tampilan menu exit

17

DAFTAR PUSTAKA

1. Pengertian Artificial Intelligence. [Online] Tersedia:

http://temukanpengertian.blogspot.com/2013/08/pengertian-artificial-

intelligence.html [5 November 2013, 17:50]

2. Badriya. 2012. Algoritma Matches. [Online] Tersedia: http://task-

campus.blogspot.com/2012/05/algoritma-matches-strawberry-prolog.html

[5 November 2013, 18:05]

3. Jaringan Komputer Algoritma Routing. [Online] Tersedia: http://biraman-

dianto.blogspot.com/2009/01/jaringan-komputer-algoritma-routing.html [5

November 2013, 18:23]

4. Syuryadinata. Andi. 2013. Pengertian Algoritma BFS & DFS dan Contoh

Program Menggunakan Algoritma BFS & DFS. [Online] Tersedia:

http://andi0309.blogspot.com/2013/05/pengertian-algoritma-bfs-dfs-dan-

contoh.html [5 November 2013, 18:27]

18

GLOSARIUM

- Backtracking adalah algoritma yang digunakan untuk mencari solusi yang lebih

mangkus dengan berbasis pada DFS. Backtracking bisa dikatakan sebagai perbaikan

dari algoritma brute force dan exhaustive search, yang secara sistematis mencari

solusi persoalan diantara semua kemungkinan yang ada.

- DFS (Depth-First Search) adalah pencarian mendalam pertama. Pada DFS, proses

pencarian akan dilakukan pada semua anaknya sebelum dilakukan ke node-node

yang selevel.

- AI (Artificial Intellegence) adalah kecerdasan buatan yang ditunjukkan oleh suatu

entitas ilmiah. Kecerdasan dibuat dan dimasukkan ke dalam suatu mesin atau

komputer supaya bisa melakukan pekerjaan seperti yang bisa dikerjakan oleh

manusia.