15 Juni 2015

Softskil"Manual Book"


INITIAL STATE
Tom and Jerry merupakan suatu permainan Reversy atau biasa disebut Othello yang ada pada Strawbery Prolog. Pada game Othello menggunakan warna hitam putih sebagai pembeda untuk bidak pemain dan komputer. Sedangkan pada game Tom and Jerry  ini menjelaskan sebuah kotak-kotak besar 10x10c yang didalamnya terdapat dua bidak yang bericon Tom dan Jerry, saya mengganti background game dengan tema Tom and Jerry.
Berikut ini adalah rancangan tampilan dari permainan game ini :



                                                            Gambar 1: Tampilan Game
Keterangan gambar :
·       Bidak sebanyak 100 buah.
·       Biji  Jerry(default).
·       Biji Tom.
·       Menu submenu : Game, Level, Help
·       Menu Level  berisikan level dalam permainan.


Gamabar 2a: Level Easy

Gambar 2b : Level Medium

Gambar 2c: Level Hard




RULES
Rules atau aturan main yang digunakan pada permainan Tom and Jerry. Cara bermainnya pun tidak jauh berbeda dengan Othello pada umumnya. Dan berikut adalah aturan permainan tersebut:
1.     Pada awal permainan diletakkan empat buah bidak berbentuk kotak, yaitu dua bidak bergambar Jerry sebagai user dan dua bidak bergambar Tom  sebagai AI di tengah-tengah papan.
2.     Letakkan disisi bidak dengan cara mengapit bidak lawan yang ada di papan dimana pada ujung dan pangkalnya harus ada bidak kepunyaan sipemain sebagai syarat untuk membaliknya agar menjadi kepunyaan sipemain. Dilakukan secara horizontal, vertical maupun diagonal.
3.     Bidak yang terjepit akan menjadi milik pemain yang menjepitnya.
4.     Jika pada semua kotak sudah terisi bidak kepunyaan pemain dan lawan diantara mereka mempunyai bidak yang sama banyak maka permainan dinyatakan seri.
5.     Kondisi pemain menang apabila bidak bergambar Jerry  lebih banyak dari bidak bergambar Tom  kepunyaan komputer dan sampai timer habis.
6.     Kondisi pemain kalah apabila bidak Jerry lebih sedikit dibandingkan bidak Tom (AI) dan timer habis.
7.     Kondisi dikatakan seri apabila bidak Jerry dan bidak TOM memiliki jumlah yang sama.
8.     Pemenang adalah pemain yang memiliki bidak terbanyak pada papan permainan dan permainan berakhir. 

GOALS
Goal atau tujuan untuk menyelesaikan permainan TOM AND JERRY adalah dengan memenuhi daerah kotak papan permainan dengan bidak pemain lebih banyak dibandingkan bidak komputer. Jika seorang pemain tidak dapat meletakan bidak karena seluruh kotak telah terisi atau tidak ada posisi yang diperbolehkan untuk meletakkan bidak dan timer habis sesuai level yang dipilih, maka permainan berakhir. Pemenangnya adalah pemain yang memiliki bidak paling banyak di atas papan. Kondisi seri dapat terjadi jika skor kedua bidak pemain berjumlah sama.
Pada game ini juga mempunyai goal atau tujuan untuk dapat memenangkan permainan dengan mengumpulkan bidak paling banyak dalam tabel yang tersedia. Pemain dengan bidak Nobitanya banyak maka akan memenangkan permainan.
Pemain pada game ini kalah apabila memiliki jumlah bidak lebih sedikit dari pada bidak si lawan.


KONSEP AI
Kecerdasan buatan dapat diterapkan atau diimplementasikan kedalam berbagai bentuk aplikasi, yang paling mudah dan digemari oleh banyak orang misalnya pada sebuah permainan atau games. AI (Artificial Intelligence) adalah salah satu bagian ilmu komputer yang membuat agar mesin/komputer dapat melakukan pekerjaan seperti layaknya dan sebaik yang dilakukan oleh manusia. Permainan ini berbasis Artificial Intelligience (kecerdasan buatan). Dan pada game ini manusia dibutuhkan kecerdasan, ketelitian untuk menguji pemikiran manusia untuk dapat dikatakan cerdas.
·       Konsep AI pada Game         
Jenis algoritma yang diterapkan dalam permainan TOM and JERRY adalah Algoritma Minimax. Algoritma Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil  kemungkinan kehilangan nilai maksimal.  Algoritma ini diterapkan dalam permainan yang melibatkan dua pemain dan permainan yang menggunakan strategi atau logika.
            Algoritma Minimax pada TOM and JERRY diterapkan oleh AI untuk dapat menentukan langkah apa yang sebaiknya diambil, agar langkah yang diambil tersebut bertujuan untuk membuat AI memenangkan permainan ini atau minimal membuat skor pemain menjadi sama.

·       Listing Program        
%This game is developed by Elviana Rumondang P.
%3IA12 - Gunadarma University

?-
  N3=0,
  pen(2,rgb(0,0,0)),
  retractall(my(_,_)),
  retractall(your(_,_)),
  set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]],0)),
  fisrt(_).

% layar start game
fisrt(_):- 
window(_,_,win_func(_),"Hello Tom and Jerry",300,50,720,650),
Background is bitmap_image("gambar//background.bmp",_),
draw_bitmap(0,0,Background,_,_).

%===Window Utama===
window(_,_,win_func(_),"Hello Tom and Jerry",300,50,720,650).
win_func(paint):-
draw_bitmap(0,0,bitmap_image("gambar//background2.bmp",_),_,_),
draw_bitmap(0,0,bitmap_image("gambar//header.bmp",_),_,_),
fail.

%===Gambar Background===
win_func(paint):-
brush("gambar//background2.bmp"),
rect(50,50,550,550),
for(I,0,11),
X is I * 50 + 50,
line(X,50,X,550),
line(50,X,550,X),
fail.

%===Lawan (tom)===
win_func(paint):-
brush("gambar//tom.bmp"),
sit(H),
for(J,0,10),
for(I,0,10),
take(H,Line,J),
take(Line,b,I),
X is I*50 + 55,
Y is J*50 + 55,
X1 is X + 40,
Y1 is Y + 40,
rect(X,Y,X1,Y1),
fail.

%===Pemain (jerry)===
win_func(paint):-
brush("gambar//jerry.bmp"),
sit(H),
for(J,0,10),
for(I,0,10),
take(H,Line,J),
take(Line,w,I),
X is I*50 + 55,
Y is J*50 + 55,
X1 is X + 40,
Y1 is Y + 40,
rect(X,Y,X1,Y1),
fail.

%===Tampilan Menu Utama===
win_func(init) :-
menu(pop_up, _, _,menu_game(_), "&Game"),
menu(pop_up, _, _, menu_level(_), "&Level"),
menu(pop_up, _, _, menu_help(_), "&Help"),
menu(right, _, _,menu_about(_),"&About"),
window_brush(_, rgb(255,255,255)).

menu_game(init):-
menu(normal, _, _, menu_baru(_), "&New Game"),
menu(normal, _, _, menu_keluar(_), "&Exit").

menu_help(init):-
G_Waktu is set_timer(_,1,time_func),
menu(normal, _, _, menu_htp(_), "&How To Play").

%===Perintah menu Mulai Baru===
menu_baru(press) :-
G_N:=80,
set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]])),
pen(2,rgb(200,200,200)),
update_window(_).

%===Perintah menu Keluar===
menu_keluar(press):-
close_window(_).
win_func(close):-
not(yes_no("Quit","Exit?",?)).

menu_level(init):-
menu(normal, _, _, mudah(_), "&Easy"),
menu(normal, _, _, sedang(_), "&Medium"),
menu(normal, _, _, sulit(_)," &Hard").

mudah(press):-
G_N:=120,
pen(2,rgb(200,200,200)),
Acak is random(4),
(Acak=0->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=1->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=2->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=3->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
          )))),
     win_func(paint).
sedang(press):-
     G_N:=80,
     pen(2,rgb(200,200,200)),
     Acak is random(4),
     (Acak=0->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=1->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=2->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=3->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
          )))),
     win_func(paint).
sulit(press):-
     G_N:=40,
     pen(2,rgb(200,200,200)),
     Acak is random(4),
     (Acak=0->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=1->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=2->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
     else (Acak=3->
          set(sit([[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,b,w,n,n,n,n],[n,n,n,n,w,b,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n,n,n]]))
          )))),
     win_func(paint).


%===Perintah menu How to Play===
menu_htp(press) :-
message("Rules", "Cara Bermain:
1. Jepitlah bidak othello tom secara horizontal, vertikal maupun diagonal.
2. Bidak othello yang terjepit akan menjadi milik user yang menjepitnya.
3. Jika AI tidak dapat meletakkan bidak, maka gilirannya akan digantikan oleh user.
4. Jika user tidak dapat meletakkan bidak, maka permainan berakhir dan harus memulai game baru.
5. Pemain dengan jumlah bidak othello terbanyak maka ia akan menjadi pemenangnya.", i).

%===Perintah menu About===
menu_about(press) :-
message("About Me","
Elviana Rumondang Pakpahan
       from
       3IA12
 GUNADARMA UNIVERSITY.", i).

%===Kondisi menang atau kalah===
win_func(paint):-
brush(rgb(180,30,110)),
sit(H),
N1 is count_successes(victory(w,H)),
N2 is count_successes(victory(b,H)),
text_out(110,30, "You   :  "+print(N1)+"                              "),
text_out(490,30, "      Computer   :  "+print(N2)+"  "),

(N1>N2, N1+N2<36 ->
text_out(50,560, "                    Info:     You have won.                   "),
beep("suara//win.wav")

else(N1>N2, N1+N2=:=36 ->
ask1
else (N1=\=2, N2=\=2, N1=N2, N1+N2<36 ->
text_out(50,560, "                    Info:     The Game's draw.              "),
beep("suara//seri.wav")

else (N1=N2, N1+N2=:=36 ->
ask3
else (N1<N2, N1+N2<36->
text_out(50,560, "                    Info:     You have lost.                   "),
beep("suara//kalah.wav")

else (N1<N2, N1+N2=:=36 ->
ask2
)))))),
fail.

%===Timer===
time_func(end):-
(G_N==0) ->
kill_timer(_,G_Waktu),
message("Message","Time's up, you're not to fast!!",i), close_window(_)
else
G_N<>=G_N-1,
text_out(560,300,"Time: "+print(G_N)+"    "),
beep.

win_func(paint).

ask1:-
message("Tom said ","Okay, you win.",!).


ask2:-
message("Tom said ","You're loser.",!).


ask3:-
message("Tom said","It's draw.",!).

%===Penentuan Daerah yang bisa di klik===
win_func(mouse_click(X,Y)):-
X1 is (X - 40) // 50,
Y1 is (Y - 40) // 50,
X1 >= 0,
X1 =< 9,
Y1 >= 0,
Y1 =< 9,
sit(Sit1),
insert(X1,Y1,w),
sit(Sit2),
not(Sit1=Sit2),
win_func(paint),
wait(1),
take3(Sit2,n,X2,Y2),
insert(X2,Y2,b),
sit(Sit3),
not(Sit2=Sit3),
win_func(paint).

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

insert(X,Y,Who):-%trace,
sit(Sit),
take2(Sit,n,X,Y),
opposit(Who,NewWho),
for(WayX,-1,1),
for(WayY,-1,1),
sit(Sit2),
neighbour(NewWho,X,Y,Sit2,WayX,WayY),
jump(NewWho,X,Y,Sit2,WayX,WayY,NewX,NewY),
replace3(Result,Sit2,Who,X,Y,NewX,NewY,WayX,WayY),
set(sit(Result)),
fail.
insert(X,Y,Who).

neighbour(Who,X,Y,Sit,WayX,WayY):-
X1 is X+ WayX,
Y1 is Y+ WayY,
take2(Sit,Who,X1,Y1).

jump(Who,X,Y,Sit,WayX,WayY,X2,Y2):-
X1 is X+ WayX,
Y1 is Y+ WayY,
opposit(Who,NewWho),
neighbour(NewWho,X1,Y1,Sit,WayX,WayY),
X2 is X1+ WayX,
Y2 is Y1+ WayY.

jump(Who,X,Y,Sit,WayX,WayY,NewX,NewY):-
X1 is X+ WayX,
Y1 is Y+ WayY,
neighbour(Who,X1,Y1,Sit,WayX,WayY),
jump(Who,X1,Y1,Sit,WayX,WayY,NewX,NewY).

take3(Sit,El,0,0):-
take2(Sit,El,0,0).

take3(Sit,El,0,9):-
take2(Sit,El,0,9).

take3(Sit,El,9,0):-
take2(Sit,El,9,0).

take3(Sit,El,9,9):-
take2(Sit,El,9,9).

take3(Sit,El,X,Y):-
take2(Sit,El,X,Y).

take2(Sit,El,X,Y):-
take(Sit,Row,Y),
take(Row,El,X).

replace2(Result,Sit,El,X,Y):-
take(Sit,Line,Y),
replace(NewLine,Line,El,X),
replace(Result,Sit,NewLine,Y).

replace3(Result,Result,Who,X,Y,X,Y,WayX,WayY).
replace3(Result,Sit,Who,X,Y,ToX,ToY,WayX,WayY):-
replace2(ResultP,Sit,Who,X,Y),
X1 is X + WayX,
Y1 is Y + WayY,
replace3(Result,ResultP,Who,X1,Y1,ToX,ToY,WayX,WayY).

replace([New,B,C,D,E,F,G,H,I,J],[_,B,C,D,E,F,G,H,I,J],New,0).
replace([A,New,C,D,E,F,G,H,I,J],[A,_,C,D,E,F,G,H,I,J],New,1).
replace([A,B,New,D,E,F,G,H,I,J],[A,B,_,D,E,F,G,H,I,J],New,2).
replace([A,B,C,New,E,F,G,H,I,J],[A,B,C,_,E,F,G,H,I,J],New,3).
replace([A,B,C,D,New,F,G,H,I,J],[A,B,C,D,_,F,G,H,I,J],New,4).
replace([A,B,C,D,E,New,G,H,I,J],[A,B,C,D,E,_,G,H,I,J],New,5).
replace([A,B,C,D,E,F,New,H,I,J],[A,B,C,D,E,F,_,H,I,J],New,6).
replace([A,B,C,D,E,F,G,New,I,J],[A,B,C,D,E,F,G,_,I,J],New,7).
replace([A,B,C,D,E,F,G,H,New,J],[A,B,C,D,E,F,G,H,_,J],New,8).
replace([A,B,C,D,E,F,G,H,I,New],[A,B,C,D,E,F,G,H,I,_],New,9).


take([El,_,_,_,_,_,_,_,_,_],El,0).
take([_,El,_,_,_,_,_,_,_,_],El,1).
take([_,_,El,_,_,_,_,_,_,_],El,2).
take([_,_,_,El,_,_,_,_,_,_],El,3).
take([_,_,_,_,El,_,_,_,_,_],El,4).
take([_,_,_,_,_,El,_,_,_,_],El,5).
take([_,_,_,_,_,_,El,_,_,_],El,6).
take([_,_,_,_,_,_,_,El,_,_],El,7).
take([_,_,_,_,_,_,_,_,El,_],El,8).
take([_,_,_,_,_,_,_,_,_,El],El,9).


victory(Who,[[Who,_,_,_,_,_,_,_,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,Who,_,_,_,_,_,_,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,Who,_,_,_,_,_,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,Who,_,_,_,_,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,Who,_,_,_,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,Who,_,_,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,Who,_,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,_,Who,_,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,_,_,Who,_],_,_,_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,_,_,_,Who],_,_,_,_,_,_,_,_,_]).

victory(Who,[_,[Who,_,_,_,_,_,_,_,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,Who,_,_,_,_,_,_,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,Who,_,_,_,_,_,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,Who,_,_,_,_,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,Who,_,_,_,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,Who,_,_,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,Who,_,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,_,Who,_,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,_,_,Who,_],_,_,_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,_,_,_,Who],_,_,_,_,_,_,_,_]).

victory(Who,[_,_,[Who,_,_,_,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,Who,_,_,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,Who,_,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,Who,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,Who,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,Who,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,Who,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,_,Who,_,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,_,_,Who,_],_,_,_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,_,_,_,Who],_,_,_,_,_,_,_]).

victory(Who,[_,_,_,[Who,_,_,_,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,Who,_,_,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,Who,_,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,Who,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,Who,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,Who,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,Who,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,_,Who,_,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,_,_,Who,_],_,_,_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,_,_,_,Who],_,_,_,_,_,_]).

victory(Who,[_,_,_,_,[Who,_,_,_,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,Who,_,_,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,Who,_,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,Who,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,Who,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,Who,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,Who,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,_,Who,_,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,_,_,Who,_],_,_,_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,_,_,_,Who],_,_,_,_,_]).

victory(Who,[_,_,_,_,_,[Who,_,_,_,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,Who,_,_,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,Who,_,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,Who,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,Who,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,Who,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,Who,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,_,Who,_,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,_,_,Who,_],_,_,_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,_,_,_,Who],_,_,_,_]).

victory(Who,[_,_,_,_,_,_,[Who,_,_,_,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,Who,_,_,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,Who,_,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,Who,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,Who,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,Who,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,Who,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,_,Who,_,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,_,_,Who,_],_,_,_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,_,_,_,Who],_,_,_]).

victory(Who,[_,_,_,_,_,_,_,[Who,_,_,_,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,Who,_,_,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,Who,_,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,Who,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,Who,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,Who,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,Who,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,_,Who,_,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,_,_,Who,_],_,_]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,_,_,_,Who],_,_]).

victory(Who,[_,_,_,_,_,_,_,_,[Who,_,_,_,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,Who,_,_,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,Who,_,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,_,Who,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,_,_,Who,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,_,_,_,Who,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,_,_,_,_,Who,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,_,_,_,_,_,Who,_,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,_,_,_,_,_,_,Who,_],_]).
victory(Who,[_,_,_,_,_,_,_,_,[_,_,_,_,_,_,_,_,_,Who],_]).

victory(Who,[_,_,_,_,_,_,_,_,_,[Who,_,_,_,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,Who,_,_,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,Who,_,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,_,Who,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,_,_,Who,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,_,_,_,Who,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,_,_,_,_,Who,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,_,_,_,_,_,Who,_,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,_,_,_,_,_,_,Who,_]]).
victory(Who,[_,_,_,_,_,_,_,_,_,[_,_,_,_,_,_,_,_,_,Who]]).

opposit(b,w).
opposit(w,b).



GLOSARIUM

·       Strawberry Prolog
Strawberry Prolog adalah bahasa pemrograman Prolog. Sintaksnya sangat dekat dengan
ISO-Prolog tapi itu memiliki banyak ekstensi yang bukan bagian dari standar. Gagasan
utama dari Strawberry Prolog adalah sangat mudah digunakan dan itulah mengapa
beberapa universitas menggunakannya untuk prolog kursus mereka.
·       Algoritma
Algoritma adalah kumpulan perintah-perintah untuk menyelesaikan suatu masalah.
Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria.
Algoritma sering mempunyai langkah pengulangan atau memerlukan keputusan sampai
tugasnya selesai.
·       Algoritma minimax
       Merupakan basis dari semua permainan berbasis AI seperti permainan catur misalnya.
      AI permainan catur tentunya sudah sangat terkenal dimana AI tersebut bahkan dapat 
     mengalahkan juara dunia sekalipun. Pada algoritma minimax, pengecekan akan seluruh
     kemungkinan yang ada sampai akhir permainan dilakukan.
·       Artificial Intelligence
Kecerdasan buatan dapat diterapkan atau diimplementasikan kedalam berbagai bentuk
aplikasi, yang paling mudah dan digemari oleh banyak orang misalnya pada sebuah
permainan atau games. AI (Artificial Intelligence) adalah salah satu bagian ilmu
komputer yang membuat agar mesin/komputer dapat melakukan pekerjaan seperti
layaknya dan sebaik yang dilakukan oleh manusia.
·       Initial States
Initial States merupakan sebuah kondisi awal pada sebuah object sebelum ada
perubahan keadaan.
·       Othello atau Reversy
Permainan yang terdapat pada Strawberry Prolog. Reversy adalah permainan dengan
memperebutkan daerah papan dengan cara membalik bidak lawan menjadi bidak
sendiri.

Berikut Link Tugas :
Dan Berikut Postingan dari Tugas Softskill:
1. Artikel Game Racing 
2. Script Game Hello Tom&Jerry 
3. Listing Game Hello Tom&Jerry


Tidak ada komentar:

Posting Komentar