Selasa, 09 Juni 2015

Manual book game ckick clack away



BAHASA DAN PROGRAM EDITOR :
         Permainan ini menggunakan bahasa pemrograman Prolog. Dan di sini penulis menggunakan Strawberry Prolog sebagai program editor. Alasan penulis menggunakan strawberry prolog ini karena menurut penulis ini mudah untuk digunakan.

INITIAL STATE :
Initial State yang digunakan sebagai acuan untuk membuat program Click Clack Away adalah pembuatan papan permainannya. Di sini penulis menggunakan gambar Apel yang berukuran 56x60 sebagai pengganti “korek api”. Game Click Clack Away merupakan Permainan Mental yang dimainkan seorang pemain melawan AI komputer. Pada game ini akan menampilkan 16 spot/apel yang tersusun dari enam baris dan kolomnya menyusun meningkat. Game ini akan mengasah otak pemainnya. Pemain dipaksa untuk menerapkan strategi yang tepat untuk memenangkan game ini. Permainan ini hanya dapat dimainkan oleh satu pemain, sedangkan Komputer bertindak sebagai lawan dari pemain.

RULES :
            Aturan main (Rules) yang digunakan pada games Click Clack Away Strawberry Prolog  ini adalah sebagai berikut :
1.      User memulai permainannya terlebih dahulu, dan user menentukan apel mana yang akan diambil untuk memulai permainan. User diberi kebebasan untuk memilih apel mana saja yang akan diambil selama berada di papan permainan.
2.      Komputer diberi pembelajaran untuk menghalangi jalan user untuk mencapai Goal (Tujuan).
3.      Komputer juga diberi pembelajaran untuk memenangkan games ini (mengambil lebih dahulu dari user) .



GOAL :
            Goal (tujuan) untuk menyelesaikan games Click Clack Away Strawberry Prolog ini adalah mengambil lebih dahulu dari lawan kita, yang dimana lawan kita ialah Komputer. Banyak sekali Goal (tujuan) yang bisa terbentuk, salah satunya sebagai berikut :

(GOAL)

(GOAL)



AI :
Kecerdasan buatan atau yang sering disebut dengan AI pada game ini terletak pada computer yang akan bertindak sebagai lawan. Komputer akan selalu berusaha mengalahkan user. Komputer dapat menyusun strateginya sendiri agar menjadi pemenang.

BATAS USIA :
            Permainan ini dapat dimainkan untuk semua usia. Karena permainan ini mengasah ketrampilan otak dengan menyusun strategi sesuai dengan tujuan yang telah ditentukan sebelumnya.

INSTALASI STRAWBERRY PROLOG :
1. Sebaiknya tutup semua program lain yang sedang dibuka.
Anda dapat menginstall Strawberry Prolog dengan dua cara yaitu dengan langsung mengakses direktori source program Strawberry Prolog di CDROM.
2. Pada jendela konfirmasi yang muncul, klik OK untuk melanjutkan proses penginstallan.
3. Kemudian anda diminta untuk menentukan lokasi dimana anda akan meletakkan file installan (destination location). Jika anda tidak menentukan destination location maka secara otomatis lokasi penginstallan ditempatkan di C:\Program Files\Strawberry Prolog. Proses penginstallan akan segera dilaksanakan jika anda telah mengklik Unzip button.

4. Selanjutnya proses penginstallan dimulai. Silakan tunggu hingga proses penginstallan selesai.
Jika proses penginstalan telah selesai maka muncul jendela konfirmasi "310 file(s) Unzipped Successfully".

Petunjuk Bermain Click Clack Away Strawberry Prolog :
1. Sebaiknya tutup semua program lain yang sedang dibuka.
Terlebih dahulu anda harus menginstall Strawberry Prolog.
2. Jika program Strawberry Prolog sudah terinstall maka buka direktori Project Prolog seperti tampilan berikut :
Dan klik double file Click Clack Away Strawberry Prolog.
Jika anda tidak mendapatkan tampilan seperti di atas maka anda harus mengketikkan listing program Click Clack Away tersebut di Strawberry Prolog.
3. Anda selanjutnya akan menemukan tampilan berikut :
Anda harus klik "Compile" untuk mengetahui apakah masih ada sintaks yang masih salah jika tidak ada sintaks yang salah maka klik "Run" atau tekan keyboard "F5" untuk menjalankan program tersebut hingga anda menemukan tampilan sebagai berikut :
4. untuk cara bermain, kita pilih New Game untuk bermain baru seperti tampilan berikut :
5. Kemudian kita merancang strategi untuk menang dengan cara klik apel keempat baris keempat sebanyak empat apel.
Kemudian klik apel pertama baris pertama sebanyak satu apel.
Lalu klik apel pertama baris keenam sebanyak satu apel.
Lalu klik apel ketiga baris kelima sebanyak dua apel
Lalu klik apel kedua baris kedua sebanyak satu apel sehingga akan muncul pesan bahwa anda menang “Congrats! Good Job”.

6. Selanjutnya ke step 4 untuk bermain baru. Kemudian strategi untuk kalah mungkin sama dengan step 5 namun berbeda pada langkah terakhir yakni dengan mengklik apel kedua baris kedua sebanyak dua apel sehingga akan muncul pesan bahwa anda kalah “Sorry, try harder!.



LISTING PROGRAM
Click Clack Away (Take the Last You Fool) Strawberry Prolog :

% Click Clack away is made by QURROTA AINI
% from GUNADARMA UNIVERSITY

?-
  G_Comp_First=0,
  G_Take_Last=0,
  G_Cap is bitmap_image("Apple1.bmp",_),
  G_Background is bitmap_image("wall1.bmp",_),
  G_Black is brush(rgb(0,0,0)),
  pen(0,0),         
  set(pos([1,2,3,4,3,2,1])),

  window_n( G_Main, _, win_func, "Click Clack Away (take the last you fool)", 200,200,800,400,_,_,rgb(0,0,0)).

win_func(close) :- not( yes_no("EXIT","Are you sure?", ?)).

win_func(init) :-
  menu( pop_up, _, _, menu_start(_), "&Start"),
  menu( normal, _, _, menu_about(_), "&About"),
  menu( normal, _, _, menu_rule(_), "&tutorial"),
  menu( right, _, _, menu_help(_), "&help").

menu_start(init) :-
menu( normal, _, _, menu_new(_), "&New Game"), 
menu( separator, _, _, fail(_), _),
menu( normal, _, _, menu_exit(_), "&Exit").


win_func(paint):-
  draw_bitmap(0,0,G_Background,_,_),
  pos(Pos),
  el(Pos,El,N),
  for(I,1,El),
%antar gambar
  X is 70+100*N,
  Y is 280- 60*I,
  draw_bitmap(X-5,Y-16,G_Cap,_,_),
  fail.
 
win_func(mouse_click(X,Y)):-
  X1 is (X- 50)//100,
  Y1 is (270-Y)//60,
  X1=<6,X>=40,
  pos(Pos),
  el(Pos,El,X1),
  El>Y1,
  replace(Pos2, Pos, Y1, X1),
  brush(G_Black),
  rect(100*X1+40,0,100*X1+140,265- 58*Y1),
  (Pos2=[0,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,0]->
      end(1)),
    set(pos(Pos3))),
  update_window(_).

win_func(mouse_click(X,Y)):-
  beep.

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 2=:=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):-
  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("Lost","Sorry, try harder!",i)
  else
    message("Win","Congrats! Good Job",!).


menu_new(press) :-
  (G_Comp_First=0->
    set(pos([1,2,3,4,3,2,1]))
  else
    Pos=[1,2,3,4,3,2,1],
    N is 2*random(3),
    el(Pos,A, N),
    A2 is A - 1,
    replace(Pos2, Pos, A2, N),
    set(pos(Pos2))),
  update_window(_).

menu_help(press):-
  shell_execute("http://www.dobrev.com/help/").

menu_about(press) :-
  message("About", "Click Clack Away (click away the apple) \nQurrota Aini - Gunadarma University 2011", i).

menu_rule(press) :-
  message("Rules","
User take turn first. You have to click one or more just in one coloumn. Remember! Dont take the last", i).

menu_exit(press) :-
  close_window(_).


OUTPUT PROGRAM


(Matches Soccer Ball’s (Don’t take the last)


(About this game)


(Rules this game)


(Quit this game)

Daftar Pustaka







Compile : proses menterjemahkan seluruh program kedalam bahasa mesin sekaligus

Prolog :  bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural.

Strawberry prolog : dialek dari Prolog bahasa pemrograman . Its sintaks sangat dekat dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari standar. Ide utama dari Strawberry Prolog adalah mudah digunakan sehingga beberapa universitas memilih menggunakannya dalam program mereka




1 komentar:

  1. I got the error while executing : Warning 7: The predicate win_func(...) has an interrupted definition. (clause 4)
    Warning 5: The global variable G_Main is used only once.
    0 errors, 2 warnings.

    Runtime Error at step 13, clause in ADD:476, atom 1:2
    The argument 1 of "pos" has to be list.

    Runtime Error at step 15, clause 0, atom 8:8
    The argument 9 of "window_n"
    is "var" but has to be "int".

    No.

    Hope receipt the help from bros. :(((

    BalasHapus